測試表結構及索引
-- create table idx (
-- id int primary key auto_increment ,
-- a1 int,
-- a2 int,
-- a3 int,
-- a4 int,
-- a5 int);
-- create index idx_a1234 on idx(a1,a2,a3,a4);
-- insert into idx(a1,a2,a3,a4,a5) value(1,2,3,4,5);
-- insert into idx(a1,a2,a3,a4,a5) select a1+1,a2+1,a3+1,a4+1,a5+1 from idx where id = (select max(id) from idx);
索引
system -> const -> eq_ref -> ref -> range -> index -> all;
單條資料表 主鍵 相聯表惟一索引 關聯表索引
order by
當 order by 中存在 desc 或者 字段順序 不匹配 索引字段順序時,不會用到索引。
當 order by 中存在 都是 asc或者 字段順序 匹配 索引字段順序時,會用到索引。
group by
當 group by 中存在字段順序 不匹配 索引字段順序時,不會用到索引。
當 group by 中存在 字段順序 匹配 索引字段順序時,會用到索引。
mysql 優化 聚集索引 mysql 索引優化
一.聚集索引 clustered index innodb預設依據主鍵列聚集,myisam不使用 特點 b樹每個葉子包含實際資料行,資料按照索引順序地儲存在物理頁上。優點 1.範圍查詢,獲取指定id的全部資料只需從磁碟讀取少量資料頁 如果不使用聚集索引,每條資料可能引起一次磁碟io。2.由於索引和資...
mysql索引優化原則 MySQL 索引優化原則
索引優化原則 1 最左字首匹配原則,聯合索引,mysql會從做向右匹配直到遇到範圍查詢 3 and d 4 如果建立 a,b,c,d 順序的索引,d是用不到索引的,如果建立 a,b,d,c 的索引則都可以用到,a,b,d的順序可以任意調整。2 和in可以亂序,比如a 1 and b 2 and c ...
mysql索引優化原則 MySQL索引優化
mysql官方對索引的定義 索引是幫助mysql高效獲取資料的資料結構。索引是在儲存引擎中實現的,所以每種儲存引擎中的索引都不一樣。如myisam和innodb儲存引擎只支援btree索引 memory和heap儲存引擎可以支援hash和btree索引。這裡僅針對常用的innodb儲存引擎所支援的b...