索引:是一种数据结构,以增加存储开销和减慢DML(增、删、改)操作来提高查询速度。
常见的索引结构:btree索引(myisam,innodb,memory,heap),hash索引(memory,heap)。
索引本身也很大,不可能全部存储在内存中,所以索引往往以索引文件的形式存储在磁盘上。
常见的索引包括:主键索引、唯一索引、普通索引、全文索引
注意:查询一次后会将这次的查询结果缓存起来,若下次再查询则直接取结果
优点:
A、提高数据检索效率,降低数据库的IO成本
B、通过索引列对数据进行排序,降低了数据排序成本,降低了CPU的消耗。
缺点:
A、索引也是一张表,该表保存了主键与索引字段,并指向实体表的记录,所以索引也是占用空间的。
B、对表进行INSERT、UPDATE、DELETE操作时,MYSQL不仅会更新数据,还要保存一下索引文件每次更新添加了索引列字段的相应信息。
在实际的生产环境中我们需要逐步分析,优化建立最优的索引,并要优化我们的查询条件。
一、创建索引:
1、主键索引:每个表最多只能有一个主键。主键可以标识一行记录,因为不同行的主键字段值是不能相同的
1.1、建表时创建:
(1)在字段声明时创建