一、索引是什麼?
比如我們要在字典中找某一字,如何才能快速找到呢?那就是通過字典的目錄。
對資料庫來說,索引的作用就是給『資料』加目錄。
二、索引演算法
設有n條隨機記錄,不用索引,平均查詢n/2次,那麼用了索引之後呢?
tree(二叉樹)索引 log2n
hash(雜湊)索引 1
三、優缺點
優點:加快了查詢的速度(select)
缺點:降低了增刪改的速度(update/delete/insert)
增加了表的檔案大小(索引檔案甚至可能比資料檔案還大)
四、索引的使用原則
不過得使用索引;
索引條件列(where後面最頻繁的條件比較適宜索引)
索引雜湊值,過於集中的值不要索引
例如:給性別列 』男『,』女『加索引,意義不大
五、索引型別
1.普通索引:僅僅是加快了查詢速度
2.唯一索引:行上的值不能重複
3.主鍵索引:不能重複
主鍵索引和唯一索引的區別:主鍵必唯一,但是唯一索引不一定是主鍵;
一張表上只能有乙個主鍵,但是可以有乙個或多個唯一索引
4.全文索引:fulltext index
六、檢視某張表上的所有索引
show index from tablename [\g,如果是在cmd視窗,可以換行];
七、建立索引
alter table 表名 add index/unique/fulltext [索引名](列名) ; ---索引名可不寫,不寫預設使用列名
alter table 表名 add primary key(列名) --不要加索引名,因為主鍵只有乙個
八、刪除索引
刪除非主鍵索引
alter table 表名 drop index 索引名;
刪除主鍵索引:
alter table 表名 drop primary key;
九、案例
設有一張新聞表 15列,10列上有索引,共500w行資料,如何快速匯入?
1.把空表的索引全部刪除
2.匯入資料
3.資料匯入完畢後,集中建索引
十、全文索引與停止詞
全文索引的用法:
match(全文索引名) against('keyword');
關於全文索引的停止詞:
全文索引不針對非常頻繁的詞做索引
如:this,is,you,my等等
全文索引在mysql的預設情況下,對於中文意義不大。
因為英文有空格,標點符號來拆成單詞,進而對單詞進行索引;
而對於中文,沒有空格來隔開單詞,mysql無法識別每個中文詞。
可以使用sphinx外掛程式來進行全文索引的中文索引。
mysql索引的概念和作用 索引的基本概念及作用
索引 是乙個資料結構,用來快速訪問資料庫 或者檢視裡的資料,需要儲存空間。資料庫的索引的原理 主要用於提高查詢效率,也就是按條件查詢的時候,先查詢索引,或者檔案裡的不同位置的結構。索引會降低資料更新的效率,當插入 修改 刪除時會引起索引結構的更新 建立索引 create unique index i...
MySQL索引基本概念和操作
資料庫最常見的訪問方式就是順序訪問和索引訪問。乙個表最多可有16個索引,最大 索引長度是256個位元組。順序訪問就是一行一行的瀏覽表,非常浪費時間,效率低。索引訪問只是讀取那些表現了所需特性的行,就像目錄,只需要看所需要的章節,而不是從第一頁開始找。索引是對資料庫表中一列或多列的值進行排序的一種結構...
MySQL 基本概念
mysql 是最流行的開源資料庫系統,可執行於幾乎所有的作業系統平台。在 mysql 安裝 一文中詳解介紹了安裝步驟,並且安裝 phpmyadmin 來管理 mysql 資料庫系統。在安裝完 mysql 資料庫系統後,系統會預設建立乙個名為 test 的資料庫 database 我們也可以建立多個資...