1. 程式人生 > >MySQL學習(十五)

MySQL學習(十五)

索引的概念

索引是資料的目錄,能快速定位資料的位置。索引提高了查詢速度,降低了增刪改的速度。並非加的越多越好。
一般在查詢頻率高的列上加,而且在重複度低的列上加效果更好。如在性別列上不用加索引,但是身份證號列上就可以加索引。
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] 索引名(列名);
新增主鍵索引