建立如此結(jié)構(gòu)的數(shù)據(jù)表,并插入110萬條隨機(jī)記錄,進(jìn)行查詢性能測試。
插入110萬條隨機(jī)記錄后,數(shù)據(jù)表的大小為102MB。
現(xiàn)在使用phpMyAdmin自帶的SQL查詢器進(jìn)行性能分析。
下面進(jìn)行帶索引的模式下查詢測試:
A. 隨機(jī)的字符型字段全匹配查詢,用時(shí) 0.0005(S)
B.隨機(jī)的主鍵查詢,用時(shí) 0.0005(S)
C.隨機(jī)的使用字符函數(shù)查詢,用時(shí) 0.4482(S)
D.使用LIKE模式一查詢,用時(shí) 0.0007(S)
E.使用LIKE模式二查詢,用時(shí) 0.7361(S)
下面是刪除了索引的情況下進(jìn)行測試:
A. 隨機(jī)的字符型字段全匹配查詢,用時(shí) 0.3439(S)
B.隨機(jī)的主鍵查詢,用時(shí) 0.0004(S)
C.隨機(jī)的使用字符函數(shù)查詢,用時(shí) 0.4882(S)
D.使用LIKE模式一查詢,用時(shí) 0.3487(S)
E.使用LIKE模式二查詢,用時(shí) 0.7339(S)
結(jié)論:
對字段進(jìn)行簡單查詢的情況下,如果字段建立了索引,查詢速度遠(yuǎn)快于沒有建索引的情況。使用MySQL函數(shù)的查詢即使在建立了索引的情況下,速度依然跟沒建索引的情況差不多。在使用 LIKE的 xxx%模式時(shí)候,有索引的情況遠(yuǎn)比沒索引的要快,但 %xxx%模式在有索引和沒索引的情況一樣。