1.復合索引
比如有一條語句是這樣的:select * from users where area=』beijing』 and age=22;
如果我們是在area和age上分別建立單個索引的話,由於mysql查詢每次只能使用乙個索引,所以雖然這樣已經相對不做索引時全表掃瞄提高了很多效
率,但是如果在area、age兩列上建立復合索引的話將帶來更高的效率。如果我們建立了(area, age,
salary)的復合索引,那麼其實相當於建立了(area,age,salary)、(area,age)、(area)三個索引,這被稱為最佳左字首
特性。因此我們在建立復合索引時應該將最常用作限制條件的列放在最左邊,依次遞減。
2.排序的索引問題
mysql查詢只使用乙個索引,因此如果where子句中已經使用了索引的話,那麼order by中的列是不會使用索引的。因此資料庫預設排序可以符合要求的情況下不要使用排序操作;盡量不要包含多個列的排序,如果需要最好給這些列建立復合索引。
select * from zl_yhjbqk order by qc_bh(建立qc_bh索引)
select * from zl_yhjbqk where qc_bh=』7001』 order by cb_sx(建立qc_bh+cb_sx索引,注:只是乙個索引,其中包括qc_bh和cb_sx欄位)
3.使用短索引
對串列進行索引,如果可能應該指定乙個字首長度。例如,如果有乙個char(255)的 列,如果在前10 個或20 個字元內,多數值是惟一的,那麼就不要對整個列進行索引。短索引不僅可以提高查詢速度而且可以節省磁碟空間和i/o操作。
mysql 補建索引 mysql 索引補充
1.unique索引補充 聯合唯一 unique name,email 是name和email這兩列聯合起來唯一,不再試某個字段唯一2.主鍵索引,類似唯一索引,也是允許聯合多個字段作為主鍵,例如 primary nid,name 3.組合索引,多列共同組成索引 注意 例如index name,ema...
mysql 建字首索引 MySQL 字首索引
檢視出現頻率 select count as cnt,city from sakila.city demo group by city order by cnt desc limit 10 1.select count distinct city count from sakila.city dem...
mysql建表建索引6 mysql建表建索引
建表 create table sj projects id int 11 not null auto increment,title varchar 255 not null default comment 專案名稱 platform id int 11 not null default 0 co...