MySQL學習(十五)
阿新 • • 發佈:2019-01-06
索引的概念
索引是資料的目錄,能快速定位資料的位置。索引提高了查詢速度,降低了增刪改的速度。並非加的越多越好。
一般在查詢頻率高的列上加,而且在重複度低的列上加效果更好。如在性別列上不用加索引,但是身份證號列上就可以加索引。
key 普通索引,就是為了加快查詢速度。
unique key 唯一索引 加快速度並且約束資料。
primary key 主鍵索引
fulltext 全文索引
全文索引在中文情況下幾乎無效。要分詞+索引,一般用第三方解決方案,如sphinx
create table t16 ( id int, name char(10), email char(20), primary key(id), #主鍵索引 key name(name), unique key email(email) );
索引長度:建索引時,可以只索引列的前一部分的內容,比如前10個字元
如 unique key email(email(10))
create table t17
(
id int,
name char(10),
email char(20),
primary key(id), #主鍵索引
key name(name),
unique key email(email(10))
);
多列索引
create table t18 ( xing char(2), ming char(10), key xm(xing,ming) );
建立表,插入資料
mysql> insert into t18 values
-> ('朱','元璋');
Query OK, 1 row affected (0.52 sec)
上面兩種情況下,索引都可以發揮作用。
上面這種情況,索引沒有發揮作用。
左字首規則,索引可以發揮作用。
索引的操作
檢視 show index from 表名
刪除 alter table 表名 drop index 表名
或 drop index 索引名 on 表名
新增索引
alter table 表名 add [index/unique] 索引名(列名);
新增主鍵索引