说说mysql的存储引擎,有什么区别?索引的介绍

InnoDB 支持ACID事务,支持事务的四种隔离级别,串行化,可重复读,读已提交,读未提交。

支持行级锁以及外检约束:所以可以支持写并发。

不存储总行数。

逐渐索引采用聚集索引,索引的数据域存储数据文件本身。

 

关键是用索引

添加适当的索引,可以简化查询,将查询转变为 排好序的快速查询数据结构

在数据库中,除了数据之外,还存在着一种数据结构,这种数据结构以某种方式引用或者叫做指向数据,这样可以在这些数据结构上实现高级查找算法,这样的数据结构就算索引,可以理解为字典的目录。

但是一般来说,索引本身也会很大,是不可能全部存储在内存中的,所以索引通常是以索引文件的方式存在磁盘上,我们平时说的索引,时指B树 BalanceTree多路平衡查找树。

索引分为 单值索引,唯一索引,复合索引,通常用的时复合索引,像建立一张表一样,用create Index 索引名 on 表名(索引列,索引列),要删除用drop ,查看用show

想要查看有没有用到索引的话,可以使用explain+sql语句,里面有10个字段,其中id字段就是看语句执行优先级的,数字越大说明优先级越高,相同的数字按照从上往下的顺序执行,type字段可以看到sql语句的优化程度,总共12个类型。System>const>eq_ref>ref>range>index>all,通常优化到ref  range就够了

 

索引的优缺点:

优点:

  1. 通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性
  2. 大大加快数据的检索速度
  3. 加快表与表之间的连接
  4. 可以减少分组和排序的时间
  5. 使用优化隐藏器,提高系统性能

缺点:

  1. 创建和维护索引需要时间,而且这种时间会随着数据量的增加而增加
  2. 索引需要占用物理空间
  3. 对表数据进行增删改的时候,索引也要动态的维护,降低了数据维护速度
原文地址:https://www.cnblogs.com/lingboweifu/p/11912832.html