1、索引存在的意义:
索引主要用来提升数据检索速度,在数据量很大的时候很有用. 索引相当于图书馆的图书目录,你要找本书可以在图书目录上找到这本书在哪个书架第几本,这样明显比到书架去找书要快得多,索引就是这个道理.
2、索引提升查询效率的实际原理:
索引是表示数据的另一种方式,它提供的数据顺序不同于数据在磁盘上的物理存储顺序。索引的特殊作用是在表内重新排列记录的物理位置。索引可建立在数据表的一列上,或建立在表的几列的组合上。
3、有关索引的其他
(1)、索引改善检索操作的性能, 但降低了数据插入、 修改和删除的性能。
(2)、因为索引本身就会导致额外的开销;此外,也并非所有的表都适合建立索引,如果一个表经常更新,索引往往会导致数据的物理顺序发生变化,付出的代价较大。
4、索引的增删改查
(1)、索引创建
索引创建一般有两种,第一种就是在创建表或者更改表结构的时候,加上的约束会自动生成索引,如:
1.PRIMARY KEY(主键索引)
mysql>ALTER TABLE `table_name` ADD PRIMARY KEY ( `column` )
2.UNIQUE(唯一索引)
mysql>ALTER TABLE `table_name` ADD UNIQUE (`column` )
3.INDEX(普通索引)
mysql>ALTER TABLE `table_name` ADD INDEX index_name ( `column` )
4.FULLTEXT(全文索引)
mysql>ALTER TABLE `table_name` ADD FULLTEXT ( `column` )
5.多列索引
mysql>ALTER TABLE `table_name` ADD INDEX index_name ( `column1`, `column2`, `column3` )
第二种,可以自己通过create语句创建索引
1.UNIQUE(唯一索引)
mysql>CREATE UNIQUE INDEX index_name ON `table_name` (`column` )
2.INDEX(普通索引)
mysql>CREATE INDEX index_name ON `table_name` ( `column` )
3.多列索引
mysql>CREATE INDEX index_name ON `table_name` ( `column1`, `column2`, `column3` )
(2)、索引的删除
1.PRIMARY KEY(主键索引)
mysql>ALTER TABLE `table_name` DROP PRIMARY KEY
2.INDEX(普通索引)或UNIQUE(唯一索引)
mysql>ALTER TABLE `table_name` DROP INDEX index_name
mysql>DROP INDEX index_name ON `talbe_name`
(3)、索引查看
mysql> show index from table_name;
mysql> show keys from table_name;