什麼是建立索引?

某次和朋友描述建立索引,覺得自己講得很模糊,決定做一份筆記。

在資料庫當中

  • 為了改進查詢效率,在資料量大的時候,可以透過建立索引讓資料庫加速查詢效率。
  • 如果沒有對資料表建立索引,將會使用 Full table scan (sequential scans) 來查詢資料。

建立索引

  • 簡單來說:『 一個數據庫中的索引就是一本書的目錄。』
  • 原理來說:『 額外在硬碟建立一張索引表,當作目錄,當進行資料庫查詢時,針對查詢條件在索引表尋找相對應的索引。再透過此索引指向實體資料。假如查詢條件不在索引表裡,就會對整個表做循序查詢。』

[Rails] Benchmark to test ruby code performance

當兩個相近的方法,該選擇哪一種效能比較好?
一般開發者在網路上查到結果就照著使用,沒有特別理解佐證的過程
所以來分享佐證的好工具:
benchmark - 為 Ruby Standard Library

Benchmark.measure

計算單獨的 ruby single block

1
2
3
4
5
def create_object(n)
n.times do
Object.new
end
end
1
2
3
require 'benchmark'

puts Benchmark.measure { create_object(10_000_000) }

output:

1
2
    user     system      total        real
1.270000 0.010000 1.280000 ( 1.272028)
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×