原本我的表格裡,只有單純的幾個欄位,沒有任何欄位有設定 key 屬性,
也都沒有設定流水號的欄位。
要檢查資料是否有重覆的時候,我就得自己準備了一個 sql 字串來檢查,
到了資料有 22 萬筆的時候,大約查一次要 0.2 秒。
insert 或 update 一次只要 0.001 ~ 0.0017,看硬碟忙不忙。
如果有 14 萬筆資料,就要花 7 個小時在檢查資料重覆性。
塞一年的股票資料就很花工夫了。
後來查到網路上說,資料庫的 index 若有建立,可以省下很多時間,
當下試試看。
語法是:
create unique index if not exist <indexname> on <tablename> ( <keycolumn>, )
做完之後,馬上查詢的時間一次只要 0.001 秒,甚至有時少於 1 毫秒。
真省時間!
玩 database 還真麻煩。
這種事感覺是很基本資料庫優化的工作,應該要預設開啟的?
或是因為我沒有設 key column 引擎也不知道要怎麼幫吧。
這次以後就要對於 table schema 及 index 特別注意了。
沒有留言:
張貼留言