1.索引由数据库中一列或多列组合而成,其作用是提高对表中数据的查询速度。
索引的优点是可以提高检索数据的速度
索引的缺点是创建和维护索引需要耗费时间。
索引可以提高查询速度,会减慢写入速度。
2.索引的分类
普通索引
唯一索引
全文索引5.6后InnoDB只支持英文
单列索引
多列索引
空间索引 spatial
//删除主键 非自增的,自增时只有一个主键时不允许删除
alter table bbs_addr drop primary key;
ERROR 1075 (42000): Incorrect table definition; there can be only one auto column and it must be defined as a key
mysql> ALTER TABLE test14 MODIFY id INT UNSIGNED;
uni_card(card);
++mysql的索引目前大部分是B-tree,所有的值按顺序存储的,每个叶子页到根距离是一样的,索引是在mysql的存储引擎层的,因此不同的存储引擎支持的索引不同,即时相同可能内部实现技术不同,MyIsam索引通过数据的物理位置引用被索引的行,而InnoDB则根据主键引用被索引的行。my索引使用前缀压缩技术使得索引更小,INnoDB则按照原数据格式进行存储。
++索引的优点:
1.索引大大减少了服务器需要扫描的数据量
2.索引可以帮助服务器避免排序和临时表
3.索引可以将随机I/O变为书序I/O。
