Mysql_索引_劉益長
阿新 • • 發佈:2022-03-20
1.索引介紹
1.1、什麼是索引?
一般的應用系統,讀寫比例在10:1左右,而且插入操作和一般的更新操作很少出現效能問題,在生產環境中,我們遇到最多的,也是最容易出問題的,還是一些複雜的查詢操作,因此對查詢語句的優化顯然是重中之重。說起加速查詢,就不得不提到索引了。
1.2、為什麼要有索引呢?
索引在MySQL中也叫做“鍵”,是儲存引擎用於快速找到記錄的一種資料結構。索引對於良好的效能 非常關鍵,尤其是當表中的資料量越來越大時,索引對於效能的影響愈發重要。 索引優化應該是對查詢效能優化最有效的手段了。
索引能夠輕易將查詢效能提高好幾個數量級。 索引相當於字典的音序表,如果要查某個字,如果不使用音序表,則需要從幾百頁中逐頁去查。
2.普通索引:
2.1、建立索引:
# 1.1、建立索引:單獨建立索引 CREATE INDEX index_name ON emp(emp_name);
2.2、修改時新增索引:
# 1.2、建立索引:修改表結構時建立索引 ALTER TABLE emp ADD INDEX index_salary
2.3、建立表時指定索引:
# 1.3、建立索引:建立表時的時候建立索引 CREATE TABLE IF NOT EXISTS article ( id INT NOT NULL AUTO_INCREMENT, title VARCHAR(30), contentVARCHAR(50), dt DATE, PRIMARY KEY(id), INDEX index_title (title) );
2.4、刪除索引
# 刪除索引 DROP INDEX index_name ON emp;
3.唯一索引
3.1、建立唯一索引:
# 3.1、單獨建立唯一索引:列的值必須唯一 CREATE UNIQUE INDEX index_name ON emp(emp_name);
3.2、修改時新增唯一索引:
# 3.2、修改表時建立唯一索引 ALTER TABLE emp ADD UNIQUE INDEX index_name (emp_name);
3.3、建立表時指定唯一索引:
# 3.3、建立表時建立唯一索引 CREATE TABLE IF NOT EXISTS emp2 ( id INT NOT NULL AUTO_INCREMENT, title VARCHAR(30), content VARCHAR(50), dt DATE, PRIMARY KEY(id), UNIQUE INDEX index_title (title) );
3.4、刪除唯一索引
# 刪除索引 DROP INDEX index_name ON emp;
4.組合索引
4.1、建立組合索引:
# 4.1、組合索引 CREATE INDEX index_ct ON article(content,dt);
4.2、修改時新增組合索引:
# 4.2、修改表時建立唯一索引 ALTER TABLE emp2 ADD INDEX index_tc (title,content);
4.3、建立表時指定組合索引:
# 4.3、建立表時建立唯一索引 CREATE TABLE IF NOT EXISTS emp3 ( id INT NOT NULL AUTO_INCREMENT, title VARCHAR(30), content VARCHAR(50), dt DATE, PRIMARY KEY(id), INDEX index_tc (title,content) );
4.4、刪除唯組合索引
# 刪除索引 DROP INDEX index_name ON emp;