MySql常用数据类型

搜索引擎

InnoDB  vs MyISAM

I:支持事务,支持外键,支持行锁和表锁

 

M:不支持事务,不支持外键,支持表锁,支持全文索引

 

事务的特性和隔离级别

ACID

原子性:

一致性

隔离性:多个事务处理同一个数据互相不影响

持久化.事务提交后保存后不会被更改

隔离级别:

读未提交

读已提交

可重复读

串行化

mysql索引

索引的原理 类型

原理:数据表中一个或者多个进行排序数据结构

类型:作为key的存在

普通索引

唯一索引:索引值必须是唯一

多列索引:(组合索引)最左原理,b+tree是最左

主键索引:

全文索引:倒排索引,使用的比较少

创建索引的条件:

1 经常作为查询条件的字段(where条件)

2:经常用作表链接的字段

3:经常出现在order by, group by 之后的字段

创建索引的注意事项

非空字段

区分度高,离散度大,不要有相同的值

索引的长度不能太长

索引失效:(key值无法比较)

记忆口诀;模糊匹配 类型隐转 最左匹配

模糊搜索:以like的语句 模糊搜索

出现隐式类型转化(python是动态语言查询中的需要注意)

没有满足最左前缀原则

聚集索引和非聚集索引:

聚集索引和非聚集索引指的是B+Tree叶节点的指针还是数据记录

myisam索引和数据分离,使用的是非聚集索引

innoDB:索引文件,使用的是聚集索引,主键索引指向的是叶节点的指针

排查慢查询

慢查询通常是缺少索引,索引不合理活着业务待物实现导致

B+Tree

查找结构:

线性查找:实现简单 太慢

二分查找:有序简单,要求有序,插入特别慢

HASH:查找特别快,占用空间,不太适合大规模数据

二叉查找树:插入查询都快,无法存大规模数据,时间复杂度退化

平衡树:解决时间复杂度退化问题,树是平衡的,节点非常多的时候,树很高

多路查找树:一个父亲多个孩子节点(度),节点过多树高不会特别深

多路平衡查找树:B-Tree

 

 

B+Tree:

B+Tree是B+树的变形

mysql实际使用的B+树作为索引的数据结构

叶子结点通过指针相连

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值