mysql 索引與優化 之 索引演算法

2021-07-27 15:05:02 字數 1681 閱讀 8470

mysql 索引與優化 之 索引演算法

普通索引 (index);

主鍵索引 (primary key);

唯一索引 (unique);

全文索引 (fulltext);

1、btree(二叉樹)索引

1 2 3 4 5 6 7

42 6

1 3 5 7

2、hash(啥希)索引

中,國,人,民

雜湊演算法

中--->005

國--->007

人--->020

民--->099

1:算出來的值,不連續,浪費空間

2:有重複的可能性

.frm = 結構檔案

.myd = 資料檔案

。myi = 索引檔案

普通索引 :僅加快速度

主鍵索引 :不能重複()

主鍵必是唯一,但是唯一索引不一定是主鍵

一張表上,只能有乙個主鍵,但是可以用乙個或多個唯一索引

唯一索引 :行上的值不能重複

全文索引 :

檢視一張表上所有索引

show index form 表名

建立索引

普通索引

alter

table 表名 add index index[index] 索引名[列名]

唯一索引

alter

table 表名 add

unique (unique) 可直接寫[列名]

全文索引

talter table 表名 add fulltex (fulltex) 可直接寫[列名]

主鍵索引

talter table 表名 add

primary

key (id) 可直接寫[列名]

刪除索引

alter

table 表名 drop index 索引名

alter

table 表名 drop index primary

key(刪除主鍵索引)

索引:索引:是針對資料所建立的目錄

作用:可以加快查詢速度

負面影響:降低了增刪改的速度

案例:1設有新聞表15列,10列上有索引,共500w行資料,如何快速匯入?

1.把空表的索引全部刪除

2.匯入資料

3.資料匯入完畢後,集中建索引

索引的建立原則

1、不要過度索引

2、在wehre條件最頻繁的列上加

3、盡量索引雜湊值(類似id,重複性較小),過於集中的值加索引意義不大

全文索引:在mysql的預設情況下,對於中文意義不大

檢視匹配度

select id,email,match(intro) against ('health') form member

select * from 表 where

match(列欄位) against('要在文章中查詢的');

關於全文索引的停止詞

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

如this,is,you,my 等等

全文索引在 mysql 的預設情況下,對於中文的意義不大

因為英文有空格,標點符號來拆成單詞,進而對單詞進行索引

而對於中文,沒有空格來隔開單詞,mysql無法識別每個中文詞

Mysql索引與優化 之索引型別

一.mysql索引型別可分為 普通索引 index 僅僅加快查詢速度 主鍵索引 primary key 主鍵索引必是唯一,唯一索引不一定是主鍵索引。唯一索引 unique 行上的值不能重複 全文索引 fulltext 二.建立索引 alter table 表名 add index unique fu...

Mysql索引與優化 之索引型別

一.mysql索引型別可分為 普通索引 index 僅僅加快查詢速度 主鍵索引 primary key 主鍵索引必是唯一,唯一索引不一定是主鍵索引。唯一索引 unique 行上的值不能重複 全文索引 fulltext 二.建立索引 alter table 表名 add index unique fu...

MySQL優化 之 索引

四種索引 主鍵索引,唯一索引,普通索引,全文索引 對查詢語句會提高效率 對增刪改語句會降低效率,因為還要對索引進行增刪改!建立索引會佔磁碟空間 對頻繁查詢的字段應建立索引,對頻繁更新的字段不適合建立索引 1 新增 1.1 主鍵索引新增 1.當一張表,把某個列設為主鍵的時候,則該列就是主鍵索引 cre...