一、索引的優點
1、減少不必要資料的掃瞄;
2、幫助伺服器避免排序和臨時表
3、將隨機io變成順序io
二、索引的用處
1、快速查詢匹配where子句的行;
2、在多個索引之間進行選擇,mysql通常會使用找到最少行的索引(雖然可以建立多個索引,但是mysql只會選擇其中乙個,這也就解釋組合索引出現);
3、在使用組合索引時,mysql優化器可以使用索引的任何最左字首來查詢行,也就是最左匹配原則;
4、當有表連線的時候,從其他表檢索行資料
5、查詢特定索引列的min或max值
6、如果排序或分組時在可用索引的最左字首上完成的,則對錶進行排序和分組,也就是覆蓋索引;
7、在某些情況下,可以優化查詢以檢索值而無需查詢資料行
三、索引分類
1、主鍵索引 alter table tbl_name add primary key (column_list) 該語句新增乙個主鍵,這意味著索引值必須是 唯一的,且不能為null。
2、唯一索引 alter table tbl_name add unique index_name (column_list):建立索引的值必須是唯一的(除了 null外,null可能會出現多次)
3、普通索引 alter table tbl_name add index index_name (column_list): 新增普通索引,索引值可出現多次。
4、全文索引 alter table tbl_name add fulltext index_name (column_list):該語句指定了索引為 fulltext ,用 於全文索引
5、組合索引 alter table tbl_name add index index_name (column_list1,column_list2)
四、索引的匹配方式
1、全值匹配:與索引值進行一一匹配;
2、匹配最左字首:只匹配前面的幾列;
3、匹配列字首:可以匹配某一列的值的開頭部分,索引可以只儲存資料的前部分資訊;
4、匹配範圍值:可以查詢某乙個範圍的資料;
5、精確匹配某一列並範圍匹配另外一列:可以查詢第一列的全部和第二列的部分;
6、只訪問索引的查詢:查詢的時候只需要訪問索引,不需要訪問資料行,本質上就是覆蓋索引;
顯示索引資訊: mysql> show index from table_name; \g
MySQL索引基本知識
1 mysql的基本儲存結構是頁 記錄都存在頁裡面 每個資料頁可以組成乙個雙向鍊錶。而每個資料頁中的記錄又可以組成乙個單向鍊錶。2 每個資料頁都會為儲存在裡面的記錄生成乙個頁目錄,在通過主鍵查詢某條記錄的時候可以在頁目錄中使用二分法快速定位到對應的槽,然後再遍歷該槽對應分組中的記錄即可快速找到指定的...
mySQL基本知識
五 字符集 ascii 128個 美式字符集 iso 8859 1 latin1 西歐字符集 255個字元 gb2312 7千多個簡體漢字 gbk 2萬多個漢字 中文常用 utf 8 unicode字符集中最流行的一種實現方式 國際化用它 六 資料庫設計 sybase powerdesigner12...
mysql 基本知識
主要筆記 mysql幫助文件 1,比較常見的建立mysql表的方法 drop table if exists tablname create table tablename create defination table options a.create table if not exists ta...