当update select from的时候。当子查询返回的数据较多 外层又是张大表的时候 就会产生O(n)的情况。 比如 update table set col = 1 where aid in (select id from a1); 1,UPDATE,test_question_option,,index,,PRIMARY,4,,1398083,100,Using where 2,DEPENDENT SUBQUERY,test_question,,unique_subquery,”PRIMARY,set_id”,PRIMARY,4,func,1,5,...
2022-08-09 15:54 1579 0
truncate empty table很慢。 bug: In MySQL 5.7 and earlier, on a system with a large buffer pool and innodb_adaptive_hash_index enabled, a TRUNCATE TABLE operation could cause a temporary drop in system performance due to an LRU scan that occurred when removing the table’s adaptive hash index entries (Bu
2021-11-03 14:00 2454 0
复制技术的演进 async 用户进行数据的修改和提交。master把dirty data写入binlog 。master binlog dump 把binlog内容推送给slave slave ioThread 接受读取binloginfo.binlog写入relaylog sqlThread 读取relay log。按照提交顺序进行trx 回放 写入文件。 半同步复制 5.5引入 对于async的改进在于客户端在master上写入一个trx的时候,需要等待slav...
2021-08-19 16:50 1800 3
mysqlserver体系结构 connector(连接者):不同语言与mysql的交互 connectpool(连接pool):连接池 管理缓冲用户的连接 sql interface:接受sql执行的接口。并返回执行结果 parse’:sql语句传递到解析器进行验证和解析。 optimizer:基于cbo的优化。 cache&&buffr:表和权限的缓存 plugin storage engine:引擎插件 Files && logs :数据文件 FS:和文...
2021-08-18 01:08 1748 0
不知道叫什么with harvey 在一个一万条数据的table 做测试。先使用代码生成10000条数据。 表结构: mysql> show create table aaaa; +-------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------...
2021-08-16 11:13 1776 0
https://blog.csdn.net/ActionTech/article/details/104904902 STRAIGHT_JOIN 改变表的连接顺序
2021-06-04 10:30 1792 0
场景 早上起来 有人反馈跑批失败了。应用抛了死锁trx被回滚。 delete之后的insert 触发dead lock. 这个数据库事务隔离是rc状态。 复现 先加s 再加x trx0: delete id=x trx1: insert id=x trx2:delete id=x 就可以复现了。 trx0加x锁 trx1加s锁 trx2等待s x 当trx0 commit。会出现一种情况 trx1占s想要x被trx2堵塞。trx2要用x又有trx1的s 就dead...
2021-04-29 10:10 2275 0
B+树 B树 Oracle用的B树。Mysql用的B+树。 优缺点 B+树矮胖(相同数据情况下B+树层次少。叶子节点多)===>搜索起来快 B+树天然带排序。===> 链表 范围查找的时候是顺序IO 比随机IO效率高。 对于数据库 必有全表扫描。B+树直接全扫叶子节点。B树需要每一层range B树比B+树好的地方:对于index方式的查数据。B树会比B+树快。B树非叶子节点也会...
2021-03-11 11:23 1893 0
mysql数据结构 mysql也就是个程序。程序 = 数据结构+算法。 研究下他的数据结构。 树 mysql采用的数据结构是B+树。Oracle是B树 B+树拥有更快的性能。和更好的稳定性。但是在某些方面比不上B树。 他俩都是基于平衡二叉树演变而来。 B树 普通的二叉树非叶子节点最多拥有两个字节点。然后会造成一个问题就是数据量多的时候 树的高度就会很高。他的...
2020-09-09 12:02 3691 0
MySQL8.0.18之前和8.0.18之后 在innodb给数据上行锁的时候,有这么个原则。 在RR情况下,对唯一属性的索引(pk/unquie key)进行范围条件加锁时。会向右遍历。(假定是普通正序index,并且不加order by)过程中,会一直扫描并且加上next-key lock直到第一个不满足条件的记录为止。(包括第一条也会加上next-key lock),如果是RC 这个next-key会...
2020-06-09 10:18 3851 0
开篇 sql_mode 不加ONLY_FULL_GROUP_BY。version mysql5.7 需求就是这样:从table1 和table2中取出需要的数据,然后根据数据分组,取出每个组中最新的数据。 看一下 下面这段SQL 表1ddl: id varchar(32) NO PRI mch_info_id varchar(20) NO pay_product varchar(20) NO pay_type varchar(20) ...
2020-01-13 11:51 3898 0
buffer pool page free page ==> page 未被使用。处于free 链表 clean page ==> page被使用。但是没有数据修改 dirty page ===> page上发生数据更改。如果内存中的这部分数据发生刷脏。就会变成clean page。其同时存在与LRU和flush链表。 buffer pool 链表 LRU链表、flush链表、free链表 LRU链表 buffer pool 里的核心链表。LRU(least ...
2020-01-02 11:36 3629 0
前言 我在刷一篇文档的时候,发现一个有意思的事情。 自己动手 我自己实验了一把 发现并没有出现它这个情况。查了文档发现在5.7的时候这个bug被修复。 所以不知道是作者写的时候出现的笔误还是什么。 第一次实验的时候并不是用的5.7的版本。第一次采取了5.6的,之后用了5.7。 前面环境版本交代的时候,写的5.7就矛盾了。
2019-11-06 11:46 3493 0
介绍: 相信很多人看到这个题目也是很懵逼,什么叫MGR一致性?MGR不是保证所有node的数据都是一致的吗?一开始我的潜意识里面也是这么认为的,MGR就是保证了我所有的从节点数据完整才返回给client 完成的信息。 类似增强半同步。 注意 在sin-primary 情况下问题不大。如果是多主的话就要考虑很多。 MGR 基础知识科普 基于paxos协议的高可用架构 ...
2019-11-05 16:48 5437 0
前言 关系count()函数,在我做Oracle的时候,一直认为,在性能方面: 不论是count(/) count(1) 还是count(index_column),count(/)总是垫底选手。 但是抱歉,在MYSQL内部不是这样的。。。 version 8.0.16 mysql8.0里 存储过程表放到了information_schema.routines 这个表里。不在原来的mysq.proc 这个表里 count()函数的意思:count()是一...
2019-09-24 18:01 3542 0