MySql
zbzbzzz
这个作者很懒,什么都没留下…
展开
-
MySQL中常见的log
binlog什么是binlogmysql数据库变更的记录,不包括查询,这样说起来就好像有点redis的aof文件的味道binlog的作用mysql进行主从复制的时候可以用binlog来恢复数据数据库中数据发生变化对于的索引的数据也要变化,要产生这种变化可以通过监听binlog来实现redo logredo log记录的是数据库的物理变化(xxxx页修改了xxx)。mysql对数据修改是先吧对应的页面加载到内存,然后在内存中把数据给修改了。如果这个记录没有马上写到物理磁盘中那就写一份原创 2021-02-23 23:30:12 · 227 阅读 · 0 评论 -
MySql事务
事务4大特性(ACID)原子性(atomicity):操作过程中不允许其他事务中途插入,工作的最小单元一致性(consistency):事务前后数据的完整性必须保持一致隔离性(isolation):不同事务不互相影响,分为4个隔离级别持久性(durability):事务提交后对于数据会永久保存到数据库中事务的隔离级别读未提交(脏读)一个事务可以读取到另一个事务未提交的数据。这种隔离级别岁最不安全的一种,因为未提交的事务是存在回滚的情况读已提交(不可重复读)在当前事务执行过程中另原创 2021-02-20 19:51:12 · 93 阅读 · 0 评论 -
MySql索引优化
多表索引优化左连接使用右表的索引右连接使用左表的索引写join语句时,应永远用小结果集驱动大结果集,保证join语句中被驱动表上join条件字段已被索引,当无法保证被驱动表的join条件字段被索引且内存资源充足的前提下,不要吝啬JoinBuffer的设置索引优化如果索引了多列,要遵循最左前缀法则,也就是说查询从最左前列开始并且不跳过索引中的列不在索引列上做任何操作(计算,函数,(自动或者手动)类型转换),会导致索引失效而转向全表扫描范围查询比如大于多少或者小于多少,这样是能用到索引的排序原创 2021-02-20 16:29:43 · 78 阅读 · 0 评论 -
explain命令
什么是explainexplain是MySql中用来分析SQL语句执行效率的一条命令,通过explain命令我们可以知道以下信息:表的读取顺序,数据读取操作的类型,哪些索引可以使用,哪些索引实际使用了,表之间的引用,每张表有多少行被优化器查询等信息。explain各参数解析idselect查询的序列号包含一组数字,表示查询中执行select子句或者操作表的顺序id相同,执行顺序由上至下id不同,如果是子查询,id的序号会递增,id值越大优先级越高,越先执行id有相同的也有不同的,则相同的原创 2021-02-18 23:15:18 · 1512 阅读 · 0 评论 -
MySql索引
什么是索引MySql官方对索引的定义为:索引(index)是帮助MySql高效获取数据的数据结构,所以索引的本质就是数据结构索引可以简单理解为拍好序的快速查找数据结构MySql索引的结构哈希索引顾名思义就是通过hash算法得到的索引,可以在短时间内定位到数据。但是它也有hash所拥有的缺点:容易产生哈希冲突,而且哈希索引不支持范围查询。B+ Tree 索引B+树是大多数MySql存储引擎默认的存储结构,因为它是有序的所以很容易进行范围查找,而且相对于普通二叉树高度不高,提高了查找的效原创 2021-02-17 16:28:23 · 60 阅读 · 0 评论 -
MySql基本架构
MySql基本架构分为Server层和存储引擎Server层连接器负责连接客户端与Server层,简单来说就像是一个登录认证模块,判断用户的身份和权限。查询缓存MySql会缓存我们执行过的select语句,以Key-Value的形式直接放在内存中。后续查询如果命中缓存就可以直接拿出缓存的结果集而不用去执行后面的复杂操作。但是查询缓存会经常失效,比如你更新一张表的其中一条内容,那这张表的所有查询缓存都会失效。所以在MySql8.0中查询缓存被移除了。分析器功能和它的名字一样就是分析sql语句,.原创 2021-02-15 20:57:26 · 82 阅读 · 1 评论