mysql手冊l索引 mysql 索引

2021-10-19 19:29:39 字數 2159 閱讀 8551

一, mysql索引的概念

01, 索引:

在mysql的列型別都可以新增索引, 在關係型資料庫中,索引是一種單獨的、物理的對資料庫表中一列或多列的值進行排序的一種儲存結構,它是某個表中一列或若干列值的集合和相應的指向表中物理標識這些值的資料頁的邏輯指標清單。索引的作用相當於圖書的目錄,可以根據目錄中的頁碼快速找到所需的內容, 簡單來說使用使用索引提高select操作效能的最佳途徑, 根據這個儲存引擎可以定義每個表的最大索引數,和最大索引長度.   myisam和innodb儲存的引擎他預設是btree索引

02,索引的演算法

二叉樹索引,時間複雜度為o(lgn)

雜湊表,時間複雜度o(1)

這兩個索引都有自己使用的範圍. hash索引有一些重要的特性需要在使用的時候特別注意

只用於使用=或者<=>操作符的等式比較

優化器不能使用hash索引來加速order by 操作

mysql 不能確定在兩個值之間大概有多少行. 如果將乙個myisam表改為hash索引的memory表,會影響一些查詢的執行效率.

只能使用整個關鍵字來搜尋一行

bree索引,使用》,=,<=,between,!=或者<>,或者like'pattern'(其中'patter'不以萬用字元開始) 操作符時,都可以使用祥光列上的索引

03,索引的原則

搜尋的索引列,不一定是所要選擇的列, 最適合的索引的列是出現在where子句的列, 或者連線自居中指定的列,而不是select關鍵字後選擇列表中的列

使用唯一的索引

使用短索引

不能過度使用索引

利用最左字首, 建立乙個n列的索引時, 實際是建立了mysql可利用的n個索引. 多列索引可起幾個索引的作用,因為可以利用索引中最左邊的列集來匹配行,這樣的列集稱為最左字首

索引條件列(where後面最頻繁的條件較適合索引)

索引雜湊值, 過於集中的值不需要索引

04,索引缺點

降低了增刪該查的速度(update/delete/insert)

增大了表的檔案大小(索引檔案可能超過資料)

05,索引分類

普通索引(index):僅僅是加快查詢速度

唯一索引(unique index):行上的值不能重複

主鍵索引(primary key):主鍵不能重複,主鍵索引必唯一,但是唯一索引不一定是主鍵

全文索引(fulltext index):檢索速度快,多伺服器負荷降低

06,建立索引的語法

create unique|fulltext|spatial|index index_name

using index_type

on table_name(index_col_name,...)

index_col_name:

col_name[(length)][asc | desc]

執行結果:

內容為提前建立號的

alter table 表名 add index /unique/fulltext等 (索引名);

索引名可以不加

alter table 表名 add primary key(列名); //不要加索引名,因為主鍵只有乙個

07,索引的檢視

show index from 表名

07,索引的刪除

語法:drop index index_name on tab1_name

alter table 表名 drop index 索引名; //刪除普通索引

alter table 表名 drop primary key; //刪除主鍵索引

全文索引的用法:

match(全文索引名) against('keyword');

關於全文索引的停止詞:

全文索引不針對非常頻繁的詞做索引

如:this,is,you,my等等

mysql 索引 手冊 MySQL 索引

mysql 索引 mysql索引的建立對於mysql的高效執行是很重要的,索引可以大大提高mysql的檢索速度。打個比方,如果合理的設計且使用索引的mysql是一輛蘭博基尼的話,那麼沒有設計和使用索引的mysql就是乙個人力三輪車。索引分單列索引和組合索引。單列索引,即乙個索引只包含單個列,乙個表可...

mysql 實驗手冊 mysql實驗手冊

mysql 必知必會 實驗指導書 廣州番禺職業技術學院 資訊工程學院 2012.2 實驗一 一 實驗目的 mysql 工具的使用和資料庫的簡單查詢 1 熟悉 mysql 命令列實用程式.copy of rste2011 dm04 factorytalk historian se 歷史資料庫動手實驗手...

mysql列印手冊 mysql常用手冊

1.如何登陸mysql 在linux下使用命令 mysql u your username p 回車。輸入密碼即可登陸到mysql 2.顯示mysql有哪些資料庫 在mysql命令行內使用show databses 命令檢視 3.如何選擇乙個資料庫 通過show databases顯示出資料庫之後,...