合適的數(shù)據(jù)類型
- 較短數(shù)據(jù)長度:
越短的數(shù)據(jù)類型通常在磁盤、內(nèi)存和CPU緩存中都需要更少的空間译株,處理起來更快。 - char(32)可以存儲的就不要用char(64);
- tinyint可以儲存的就不要用int;
- 簡單的數(shù)據(jù)類型:
整型數(shù)據(jù)比起字符,處理開銷更小 - 應(yīng)該用內(nèi)置的日期和時(shí)間數(shù)據(jù)類型三痰,不要用字符串來存儲時(shí)間;
- 用整型數(shù)據(jù)存儲IP窜管;
- 盡量避免使用NULL;
B+Tree 聯(lián)合索引:最左前綴原則
-
like
使用時(shí)需要注意稚机; - 索引字段前后順序排列需要綜合考慮類型幕帆,長度,離散度等指標(biāo)赖条;
哈希索引:only in Memory
- Hash索引只支持等值比較失乾;
- 不能使用hash索引排序;
聚簇索引:只有solidDB和InnoDB支持
- 根據(jù)主鍵的范圍查找會大量減少磁盤IO纬乍;
- 盡量用默認(rèn)的自增長做為主鍵碱茁,減少增加數(shù)據(jù)時(shí)的移動數(shù)據(jù)開銷與碎片;
覆蓋索引
- 索引項(xiàng)通常比記錄要小,所以MySQL訪問更少的數(shù)據(jù)仿贬;
- 索引都按值的大小順序存儲纽竣,相對于隨機(jī)訪問記錄,需要更少的I/O茧泪;
- 大多數(shù)據(jù)引擎能更好的緩存索引蜓氨。比如MyISAM只緩存索引;
全文索引:只有MyISAM引擎支持队伟。