索引的概念 索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分),它们包含着对数据表里所有记录的引用指针.更通俗的说,数据库索引好比是一本书前面的目录,能加快数据库的查询速度.在没有索引的情况下,数据库会遍历全部数据后选择符合条件的:而有了相应的索引之后,数据库会直接在索引中查找符合条件的选项.如果我们把SQL语句换成"SELECT * FROM 表名 WHERE id=2000000",那么你是希望数据库按照顺序读取完200万行数据以后给你结果还是直接在索引中定位
1.复合索引比如有一条语句是这样的:select * from users where area='beijing' and age=22;如果我们是在area和age上分别创建单个索引的话,由于mysql查询每次只能使用一个索引,所以虽然这样已经相对不做索引时全表扫描提高了很多效率,但是如果在area.age两列上创建复合索引的话将带来更高的效率.如果我们创建了(area, age,salary)的复合索引,那么其实相当于创建了(area,age,salary).(area,age).(are
索引创建优化:fast index creationmysql5.5之前不包括5.5,创建索引或修改删除这类的ddl操作过程为:1.首先创建一张新的临时表,表结构为通过alter table 新定义的结构2.然后把原表中的数据导入到临时表中3.接着删除原表4.最后把临时表重命名为原来的表名 innodb 存储引擎从1.0.x开始支持fast index creation(快速索引创建)-简称:FIC对于辅助索引的创建,innodb存储引擎会对创建索引的表加上一个S锁,在创建过程中,不需要重建表,