Mysql的索引 事务 存储引擎
- 索引
概念
什么是索引:索引是一个排序的列表,列表当中存储的是所有的值和包含这个值的数据所在行的物理地址
索引的作用
加快查询作用,这是他主要的一个作用
- 利用索引数据库可以快速定位,大大加快查询速度。
- 表的数据很多,查询需要关联多个表,这个时候索引也可以提高查询速度
- 加快表与表之间的连接
- 使用分组和排序时,可以大大减少时间
- 可以提高数据库恢复数据时的速度
索引创建的原则
- 如果有索引,数据库会优先进行索引查询,然后定位数据,索引索引使用不当,反而会增加数据库的负担
主键,外键必须要有索引(创建好了主键和外键自动就是索引,不需要额外声明)
- 如果一个表超过了300行记录,必须要有索引,否则数据库会遍历表的所有数据。
- 互相之间有关联的表,在关联字段上应该设置索引
- 如果该字段的唯一性太差,不适合创建索引,最好是唯一且不重复的字段
- 更新太频繁的字段,不适合做索引。
- 经常被where条件匹配的字段,尤其是表数据较多的,应该创建索引
- 在经常进行(高级语句)group by (分组) order by (排序语句)的字段,要建立索引
- 索引的列的字段越小越好,大文本字段(长文本字段)不要建立字段
索引的类型
- 数 索引又叫 BTREE
如何查看表的索引
属性结构的索引,也是大部分数据库的默认索引类型。
根节点:数的最顶端分支节点
分支节点:指向索引里其他的分支节点,也可以是叶子结点
叶子结点:直接指向表里的数据行
哈希索引:散列索引,把任意长度的输入,通过散列算法变换成固定长度的输出,散列值----分别对应数据里的列和行 mosql的默认引擎:innodb 默认的索引类型就是Btree
Memory 引擎可以支持HASH,也是他的默认引擎
先算散列值,然后在对应,