索引是一種特殊的文件(InnoDB數據表上的索引是表空間的一個組成部分),它們包含着對數據表裏全部記錄的引用指針。mysql
更通俗的說,數據庫索引比如是一本書前面的目錄,在查找內容以前能夠先在目錄中查找索引位置,以此快速定位查詢數據。算法
對於索引,會保存在額外的文件中。sql
一、普通索引 二、惟一性索引 三、主鍵索引(主索引) 四、複合索引 五、全文索引
最基本的索引,不具有惟一性,僅加快查詢速度數據庫
方法一:建立表時添加索引服務器
語法:併發
create table 表名( 列定義 index 索引名稱 (字段) index 索引名稱 (字段) )
注:可使用key關鍵字,也可使用index關鍵字。索引名稱,能夠加也能夠不加,不加使用字段名做爲索引名。高併發
MariaDB [book]> desc books; +------------+------------------------------------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +------------+------------------------------------------------+------+-----+---------+----------------+ | bId | int(4) | NO | PRI | NULL | auto_increment | | bName | varchar(255) | YES | | NULL | | | bTypeId | enum('1','2','3','4','5','6','7','8','9','10') | YES | | NULL | | | publishing | varchar(255) | YES | | NULL | | | price | int(4) | YES | | NULL | | | pubDate | date | YES | | NULL | | | author | varchar(30) | YES | | NULL | | | ISBN | varchar(255) | YES | | NULL | | +------------+------------------------------------------------+------+-----+---------+----------------+ 8 rows in set (0.00 sec) MariaDB [book]> create table demo(id int(4),name varchar(20),pwd varchar(20),index(pwd)); Query OK, 0 rows affected (0.08 sec) MariaDB [book]> create table demo1(id int(4),name varchar(20),pwd varchar(20),key(pwd)); Query OK, 0 rows affected (0.01 sec) MariaDB [book]> create table demo2(id int(4),name varchar(20),pwd varchar(20),key index_pwd(pwd)); # 爲索引加上名稱 Query OK, 0 rows affected (0.02 sec)
注意搜索引擎
index和 key做用是相同的設計
方法二:當表建立完成後,使用alter爲表添加索引:
語法:指針
alter table 表名 add index 索引名稱 (字段1,字段2.....);
例子:
MariaDB [book]> desc books; +------------+------------------------------------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +------------+------------------------------------------------+------+-----+---------+----------------+ | bId | int(4) | NO | PRI | NULL | auto_increment | | bName | varchar(255) | YES | | NULL | | | bTypeId | enum('1','2','3','4','5','6','7','8','9','10') | YES | | NULL | | | publishing | varchar(255) | YES | | NULL | | | price | int(4) | YES | | NULL | | | pubDate | date | YES | | NULL | | | author | varchar(30) | YES | | NULL | | | ISBN | varchar(255) | YES | | NULL | | +------------+------------------------------------------------+------+-----+---------+----------------+ 8 rows in set (0.00 sec) MariaDB [book]> alter table books add key (bName,bTypeId); Query OK, 44 rows affected (0.01 sec) Records: 44 Duplicates: 0 Warnings: 0 MariaDB [book]> desc books; # 能夠看到在bName字段上添加的索引 +------------+------------------------------------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +------------+------------------------------------------------+------+-----+---------+----------------+ | bId | int(4) | NO | PRI | NULL | auto_increment | | bName | varchar(255) | YES | MUL | NULL | | | bTypeId | enum('1','2','3','4','5','6','7','8','9','10') | YES | | NULL | | | publishing | varchar(255) | YES | | NULL | | | price | int(4) | YES | | NULL | | | pubDate | date | YES | | NULL | | | author | varchar(30) | YES | | NULL | | | ISBN | varchar(255) | YES | | NULL | | +------------+------------------------------------------------+------+-----+---------+----------------+ 8 rows in set (0.00 sec)
語法:
desc 索引名(或索引字段)
例子:
MariaDB [book]> desc demo; +-------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+-------------+------+-----+---------+-------+ | id | int(4) | YES | | NULL | | | name | varchar(20) | YES | | NULL | | | pwd | varchar(20) | YES | MUL | NULL | | +-------+-------------+------+-----+---------+-------+ 3 rows in set (0.00 sec) MariaDB [book]> desc demo1; +-------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+-------------+------+-----+---------+-------+ | id | int(4) | YES | | NULL | | | name | varchar(20) | YES | | NULL | | | pwd | varchar(20) | YES | MUL | NULL | | +-------+-------------+------+-----+---------+-------+ 3 rows in set (0.00 sec) MariaDB [book]> desc demo2; +-------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+-------------+------+-----+---------+-------+ | id | int(4) | YES | | NULL | | | name | varchar(20) | YES | | NULL | | | pwd | varchar(20) | YES | MUL | NULL | | +-------+-------------+------+-----+---------+-------+ 3 rows in set (0.00 sec) MariaDB [book]> desc books; +------------+------------------------------------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +------------+------------------------------------------------+------+-----+---------+----------------+ | bId | int(4) | NO | PRI | NULL | auto_increment | | bName | varchar(255) | YES | MUL | NULL | | | bTypeId | enum('1','2','3','4','5','6','7','8','9','10') | YES | | NULL | | | publishing | varchar(255) | YES | | NULL | | | price | int(4) | YES | | NULL | | | pubDate | date | YES | | NULL | | | author | varchar(30) | YES | | NULL | | | ISBN | varchar(255) | YES | | NULL | | +------------+------------------------------------------------+------+-----+---------+----------------+ 8 rows in set (0.00 sec)
注意:若是Key是MUL, 那麼該列的值能夠重複。該列是一個非惟一索引的前導列(第一列)或者是一個惟一性索引的組成部分可是能夠含有空值NULL。
語法:
alter table 表名 drop key 索引名(或字段名);
例子:
MariaDB [book]> alter table demo drop key pwd; Query OK, 0 rows affected (0.02 sec) Records: 0 Duplicates: 0 Warnings: 0 MariaDB [book]> alter table demo1 drop key pwd; Query OK, 0 rows affected (0.01 sec) Records: 0 Duplicates: 0 Warnings: 0 MariaDB [book]> alter table demo2 drop key index_pwd; Query OK, 0 rows affected (0.01 sec) Records: 0 Duplicates: 0 Warnings: 0 MariaDB [book]> alter table books add key (bName,bTypeId); Query OK, 44 rows affected (0.01 sec) Records: 44 Duplicates: 0 Warnings: 0
與普通索引基本相同,但有一個區別:
索引列的全部值都只能出現一次,即必須惟一,用來約束內容。 字段值只能出現一次時,應該加惟一索引。 惟一性容許有NULL值<容許爲空>。
方法一:建立表時加惟一索引
語法:
create table 表名( 列定義: unique key 索引名 (字段); )
注意:經常使用在值不能重複的字段上,好比說用戶名,電話號碼,身份證號。
例子:
MariaDB [book]> create table demo3(id int(4) auto_increment primary key,uName varchar(20),uPwd varchar(20),unique index(uName)); Query OK, 0 rows affected (0.07 sec) MariaDB [book]> desc demo3; +-------+-------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------+-------------+------+-----+---------+----------------+ | id | int(4) | NO | PRI | NULL | auto_increment | | uName | varchar(20) | YES | UNI | NULL | | | uPwd | varchar(20) | YES | | NULL | | +-------+-------------+------+-----+---------+----------------+ 3 rows in set (0.00 sec)
方法二:修改表時加惟一索引
語法:
alter table 表名 add unique 索引名 (字段);
例子:
MariaDB [book]> desc books; +------------+------------------------------------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +------------+------------------------------------------------+------+-----+---------+----------------+ | bId | int(4) | NO | PRI | NULL | auto_increment | | bName | varchar(255) | YES | | NULL | | | bTypeId | enum('1','2','3','4','5','6','7','8','9','10') | YES | | NULL | | | publishing | varchar(255) | YES | | NULL | | | price | int(4) | YES | | NULL | | | pubDate | date | YES | | NULL | | | author | varchar(30) | YES | | NULL | | | ISBN | varchar(255) | YES | | NULL | | +------------+------------------------------------------------+------+-----+---------+----------------+ 8 rows in set (0.01 sec) MariaDB [book]> alter table books add unique index_bName (bName); Query OK, 43 rows affected (0.01 sec) Records: 43 Duplicates: 0 Warnings: 0 MariaDB [book]> desc books; +------------+------------------------------------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +------------+------------------------------------------------+------+-----+---------+----------------+ | bId | int(4) | NO | PRI | NULL | auto_increment | | bName | varchar(255) | YES | UNI | NULL | | | bTypeId | enum('1','2','3','4','5','6','7','8','9','10') | YES | | NULL | | | publishing | varchar(255) | YES | | NULL | | | price | int(4) | YES | | NULL | | | pubDate | date | YES | | NULL | | | author | varchar(30) | YES | | NULL | | | ISBN | varchar(255) | YES | | NULL | | +------------+------------------------------------------------+------+-----+---------+----------------+ 8 rows in set (0.02 sec)
alter table 表名 drop key 索引名(或字段名);
例子:
MariaDB [book]> alter table books drop key index_bName; Query OK, 43 rows affected (0.01 sec) Records: 43 Duplicates: 0 Warnings: 0 MariaDB [book]> desc books; +------------+------------------------------------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +------------+------------------------------------------------+------+-----+---------+----------------+ | bId | int(4) | NO | PRI | NULL | auto_increment | | bName | varchar(255) | YES | | NULL | | | bTypeId | enum('1','2','3','4','5','6','7','8','9','10') | YES | | NULL | | | publishing | varchar(255) | YES | | NULL | | | price | int(4) | YES | | NULL | | | pubDate | date | YES | | NULL | | | author | varchar(30) | YES | | NULL | | | ISBN | varchar(255) | YES | | NULL | | +------------+------------------------------------------------+------+-----+---------+----------------+ 8 rows in set (0.01 sec) MariaDB [book]> desc demo3; +-------+-------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------+-------------+------+-----+---------+----------------+ | id | int(4) | NO | PRI | NULL | auto_increment | | uName | varchar(20) | YES | UNI | NULL | | | uPwd | varchar(20) | YES | | NULL | | +-------+-------------+------+-----+---------+----------------+ 3 rows in set (0.01 sec) MariaDB [book]> alter table demo3 drop key uName; Query OK, 0 rows affected (0.03 sec) Records: 0 Duplicates: 0 Warnings: 0 MariaDB [book]> desc demo3; +-------+-------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------+-------------+------+-----+---------+----------------+ | id | int(4) | NO | PRI | NULL | auto_increment | | uName | varchar(20) | YES | | NULL | | | uPwd | varchar(20) | YES | | NULL | | +-------+-------------+------+-----+---------+----------------+ 3 rows in set (0.00 sec)
查詢數據庫,按主鍵查詢是最快的,每一個表只能有一個主鍵列,能夠有多個普通索引列。
主鍵列要求列的全部內容必須惟一,而索引列不要求內容必須惟一,但不容許爲空
方法一:建立表建立主鍵索引
MariaDB [book]> create table demo4 (id int(4) not null auto_increment,name varchar(4) default null,primary key(id)); Query OK, 0 rows affected (0.02 sec) MariaDB [book]> desc demo4; +-------+------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------+------------+------+-----+---------+----------------+ | id | int(4) | NO | PRI | NULL | auto_increment | | name | varchar(4) | YES | | NULL | | +-------+------------+------+-----+---------+----------------+ 2 rows in set (0.01 sec) MariaDB [book]> show index from demo4; +-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+ | Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment | +-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+ | demo4 | 0 | PRIMARY | 1 | id | A | 0 | NULL | NULL | | BTREE | | | +-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+ 1 row in set (0.00 sec)
方法二:建立表後添加 <不推薦>
MariaDB [book]> drop table demo4; Query OK, 0 rows affected (0.01 sec) MariaDB [book]> create table demo4 (id int(4) not null auto_increment primary key,name varchar(4) not null); Query OK, 0 rows affected (0.02 sec) MariaDB [book]> alter table demo4 change id id int(4) not null; Query OK, 0 rows affected (0.03 sec) Records: 0 Duplicates: 0 Warnings: 0 MariaDB [book]> desc demo4; +-------+------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+------------+------+-----+---------+-------+ | id | int(4) | NO | PRI | NULL | | | name | varchar(4) | NO | | NULL | | +-------+------------+------+-----+---------+-------+ 2 rows in set (0.00 sec) MariaDB [book]> show index from demo4; +-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+ | Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment | +-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+ | demo4 | 0 | PRIMARY | 1 | id | A | 0 | NULL | NULL | | BTREE | | | +-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+ 1 row in set (0.00 sec)
MariaDB [book]> alter table demo4 drop primary key; Query OK, 0 rows affected (0.03 sec) Records: 0 Duplicates: 0 Warnings: 0 MariaDB [book]> desc demo4; +-------+------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+------------+------+-----+---------+-------+ | id | int(4) | NO | | NULL | | | name | varchar(4) | NO | | NULL | | +-------+------------+------+-----+---------+-------+ 2 rows in set (0.00 sec) MariaDB [book]> show index from demo4; Empty set (0.00 sec)
主鍵索引,惟一性索引區別:主鍵索引不能有NULL,惟一性索引能夠有空值
索引能夠包含一個、兩個或更多個列。兩個或更多個列上的索引被稱做複合索引
複合索引專門用於組合搜索,其效率大於索引合併
例: 建立一個表存放服務器容許或拒絕的IP和port,但記錄中IP和port要惟一。
MariaDB [book]> create table firewall(host varchar(15) not null,port smallint(4) not null,access enum("deny","allow") not null,primary key(host,port)); # 用host和port列做複合索引 Query OK, 0 rows affected (0.11 sec) MariaDB [book]> insert into firewall values("192.168.81.100",22,"deny"); Query OK, 1 row affected (0.02 sec) MariaDB [book]> select * from firewall; +---------------+------+--------+ | host | port | access | +---------------+------+--------+ | 192.168.81.100 | 22 | deny | +---------------+------+--------+ 1 row in set (0.00 sec) MariaDB [book]> insert into firewall values("192.168.81.101",22,"allow"); Query OK, 1 row affected (0.04 sec) MariaDB [book]> insert into firewall values("192.168.81.100",22,"deny"); # 插入數據時,IP和port要惟一,不然會報錯 ERROR 1062 (23000): Duplicate entry '192.168.81.100-22' for key 'PRIMARY' MariaDB [book]> select * from firewall; +----------------+------+--------+ | host | port | access | +----------------+------+--------+ | 192.168.81.100 | 22 | deny | | 192.168.81.101 | 22 | allow | +----------------+------+--------+ 2 rows in set (0.01 sec) MariaDB [book]> desc firewall; # 查看索引 +--------+----------------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +--------+----------------------+------+-----+---------+-------+ | host | varchar(15) | NO | PRI | NULL | | | port | smallint(4) | NO | PRI | NULL | | | access | enum('deny','allow') | NO | | NULL | | +--------+----------------------+------+-----+---------+-------+ 3 rows in set (0.01 sec)
建表的時候若是加各類索引,順序以下:
create table 表名(字段定義,PRIMARYKEY (`bId`),UNIQUE KEY `bi` (`bImg`),KEY `bn` (`bName`),KEY `ba` (`author`))
全文索引(也稱全文檢索)是目前搜索引擎使用的一種關鍵技術。
它可以利用"分詞技術"等多種算法智能分析出文本文字中關鍵字詞的頻率及重要性,而後按照必定的算法規則智能地篩選出咱們想要的搜索結果
mysql 在數據量較大的狀況下,高併發鏈接的狀況下:
select 語句 where bName like '%網%' 使用% 和 _ 通配符進行查找,由於索引裏面保存的是一堆指針,不會保存具體內容,只能進行全表掃描,形成數據庫壓力大
全文索引只能用在varchar和text字段中
方法一:建立表時建立
語法:
create table 表名( 列定義, fulltext key 索引名 (字段); )
方法二:修改表時添加
語法:
alter table 表名 add fulltext 索引名 (字段);
例子:
MariaDB [book]> show create table books; +-------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Table | Create Table | +-------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | books | CREATE TABLE `books` ( `bId` int(4) NOT NULL AUTO_INCREMENT, `bName` varchar(255) DEFAULT NULL, `bTypeId` enum('1','2','3','4','5','6','7','8','9','10') DEFAULT NULL, `publishing` varchar(255) DEFAULT NULL, `price` int(4) DEFAULT NULL, `pubDate` date DEFAULT NULL, `author` varchar(30) DEFAULT NULL, `ISBN` varchar(255) DEFAULT NULL, PRIMARY KEY (`bId`) ) ENGINE=MyISAM AUTO_INCREMENT=45 DEFAULT CHARSET=utf8 | +-------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1 row in set (0.01 sec) MariaDB [book]> alter table books add fulltext index_bName (`bName`); Query OK, 43 rows affected (0.04 sec) Records: 43 Duplicates: 0 Warnings: 0 MariaDB [book]> desc books; +------------+------------------------------------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +------------+------------------------------------------------+------+-----+---------+----------------+ | bId | int(4) | NO | PRI | NULL | auto_increment | | bName | varchar(255) | YES | MUL | NULL | | | bTypeId | enum('1','2','3','4','5','6','7','8','9','10') | YES | | NULL | | | publishing | varchar(255) | YES | | NULL | | | price | int(4) | YES | | NULL | | | pubDate | date | YES | | NULL | | | author | varchar(30) | YES | | NULL | | | ISBN | varchar(255) | YES | | NULL | | +------------+------------------------------------------------+------+-----+---------+----------------+ 8 rows in set (0.00 sec) MariaDB [book]> alter table books drop key index_bName; Query OK, 43 rows affected (0.03 sec) Records: 43 Duplicates: 0 Warnings: 0 MariaDB [book]> desc books; +------------+------------------------------------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +------------+------------------------------------------------+------+-----+---------+----------------+ | bId | int(4) | NO | PRI | NULL | auto_increment | | bName | varchar(255) | YES | | NULL | | | bTypeId | enum('1','2','3','4','5','6','7','8','9','10') | YES | | NULL | | | publishing | varchar(255) | YES | | NULL | | | price | int(4) | YES | | NULL | | | pubDate | date | YES | | NULL | | | author | varchar(30) | YES | | NULL | | | ISBN | varchar(255) | YES | | NULL | | +------------+------------------------------------------------+------+-----+---------+----------------+ 8 rows in set (0.00 sec) MariaDB [book]> alter table books add fulltext index_bName (`bName`,`publishing`); Query OK, 43 rows affected (0.02 sec) Records: 43 Duplicates: 0 Warnings: 0 MariaDB [book]> desc books; +------------+------------------------------------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +------------+------------------------------------------------+------+-----+---------+----------------+ | bId | int(4) | NO | PRI | NULL | auto_increment | | bName | varchar(255) | YES | MUL | NULL | | | bTypeId | enum('1','2','3','4','5','6','7','8','9','10') | YES | | NULL | | | publishing | varchar(255) | YES | | NULL | | | price | int(4) | YES | | NULL | | | pubDate | date | YES | | NULL | | | author | varchar(30) | YES | | NULL | | | ISBN | varchar(255) | YES | | NULL | | +------------+------------------------------------------------+------+-----+---------+----------------+ 8 rows in set (0.01 sec) MariaDB [book]> alter table books drop key index_bName; Query OK, 43 rows affected (0.02 sec) Records: 43 Duplicates: 0 Warnings: 0 MariaDB [book]> desc books; +------------+------------------------------------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +------------+------------------------------------------------+------+-----+---------+----------------+ | bId | int(4) | NO | PRI | NULL | auto_increment | | bName | varchar(255) | YES | | NULL | | | bTypeId | enum('1','2','3','4','5','6','7','8','9','10') | YES | | NULL | | | publishing | varchar(255) | YES | | NULL | | | price | int(4) | YES | | NULL | | | pubDate | date | YES | | NULL | | | author | varchar(30) | YES | | NULL | | | ISBN | varchar(255) | YES | | NULL | | +------------+------------------------------------------------+------+-----+---------+----------------+ 8 rows in set (0.00 sec) MariaDB [book]> alter table books add fulltext index_bName (`publishing`); Query OK, 43 rows affected (0.02 sec) Records: 43 Duplicates: 0 Warnings: 0 MariaDB [book]> desc books; +------------+------------------------------------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +------------+------------------------------------------------+------+-----+---------+----------------+ | bId | int(4) | NO | PRI | NULL | auto_increment | | bName | varchar(255) | YES | | NULL | | | bTypeId | enum('1','2','3','4','5','6','7','8','9','10') | YES | | NULL | | | publishing | varchar(255) | YES | MUL | NULL | | | price | int(4) | YES | | NULL | | | pubDate | date | YES | | NULL | | | author | varchar(30) | YES | | NULL | | | ISBN | varchar(255) | YES | | NULL | | +------------+------------------------------------------------+------+-----+---------+----------------+ 8 rows in set (0.01 sec)
MariaDB [book]> alter table books drop key index_bName; Query OK, 39 rows affected (0.02 sec) Records: 39 Duplicates: 0 Warnings: 0
MySQL自帶的全文索引只能用於數據庫引擎爲MyISAM的數據表,若是是其餘數據引擎,則全文索引不會生效
MySQL自帶的全文索引只能對英文進行全文檢索,目前沒法對中文進行全文檢索。
一、索引並不是越多越好 二、數據量不大不須要創建索引 三、列中的值變化很少不須要創建索引 row id 四、常常排序(order by)和分組(group by)的列須要創建索引 五、惟一性約束對應使用惟一性索引
因爲索引是專門用於加速搜索而生,因此加上索引以後,查詢效率會很快,查詢時間會減小
1.索引是以文件存儲的。若是索引過多,佔磁盤空間較大。並且他影響: insert ,update ,delete 執行時間。 2.索引中數據必須與數據表數據同步:若是索引過多,當表中數據更新的時候後,索引也要同步更新,這就下降了效率。