yangyidba

其他

新特性解读 | MySQL 8.0 GIPK 不可见主键

'sql_generate_invisible_primary_key';+------------------------------------+-------+|
2022年8月3日
其他

一文了解ClickHouse

cost,加速了查询。同一列中的数据属于同一类型,压缩效果显著。列存往往有着高达十倍甚至更高的压缩比,节省了大量的存储空间,降低了存储成本。更高的压缩比意味着更小的data
2020年5月8日
其他

再说 order by 优化

by原理了解不透彻可以参考其他同行的文章《MySQL排序内部原理探秘》.本文是基于官网文档的二刷(基本翻译+测试验证),看完本文大部分开发同学可以了解到什么样的select
2019年7月18日
其他

MySQL centos 6 vs 7的性能对比

并发更新可以高达1w以上,当然生产环境的商品扣减,有多次查询和insert,update,性能会有一定下降。但是同比而言,也会有相当的性能提升。
2019年6月4日
其他

哪些因素会导致慢查询?

使用了compress选项将备份集压缩。当我们需要在数据库服务器上恢复一个比较大的实例,而解压缩的过程需要耗费cpu和占用大量io导致数据库实例所在的磁盘io使用率100%,会影响MySQL
2019年5月30日
其他

一次大量删除导致 MySQL 慢查的分析

DATA_ROLL_PTR,找到对应的回滚段记录,继续通过上述判断记录可见的规则,进行判断,如果记录依旧不可见,继续通过回滚段查找之前的版本,直到找到对应可见的版本。
2019年5月17日
其他

少年,MySQL Query Rewrite了解一下

1000w的大表,单个sql耗时1.8s,此时数据库thread_running活跃会话飙高,开发又无法快速添加缓存或者发布代码解决。我们可以将查询条件重写:
2019年3月29日
其他

TCP重传问题排查思路与实践

分析该包,注意因为重传不是时刻都有的,所以抓包命令是要持续执行以便捕捉到重传的包。使用wireshark打开tcpdump的结果,在搜索框里入手tcp.analysis.retransmission
2019年3月3日
其他

如何使用rsync命令

users"被定义时,该文件才会起作用。文件每行包含一个username:passwd对。该参数没有默认的值,必须指定一个文件/etc/rsyncd.passwd,同时rsyncd.passwd
2019年1月29日
其他

业务优化案例一则

10000该sql的功能是获取t_id大于某些值的所有记录并且做聚合,然后把参加过task_id且次数等于7的t_id取出来。拿到sql,然后去查看表结构只有task_id
2019年1月22日
其他

业务优化案例一则

耗时1ms+网络耗时1.5ms约等于2.5ms单个事务持有锁的时间是优化之前的1/2。(其实大致的计算方式是这样的,并发越高,排队获取锁等待的时间就越长,最终一个sql等待超过阈值被kill)2.4
2019年1月12日
其他

万门大学计划招收300名学员,免费攻读人工智能专业

给大家看一组最新数据。2018年最新数据:python、大数据、人工智能从业者薪资表为什么人工智能行业的工资那么高?无论是科研院所,商业巨头还是初创企业,各行各业都在大力开发或者引进人工智能,由于储备不足,导致人工智能人才现在出现缺口,而且非常巨大。据领英今日发布的全球AI领域技术人才分布图显示,中国目前的AI人才缺口超过5万人。
2019年1月9日
其他

MySQL kill命令哪些事儿

packets经同事王航威排查,大概的经过是:业务程序接收一批数据后,在发送给client的过程中,网络发生异常,导致应用服务器不能接收数据,此时sql-killer检查到查询超时并发送kill
2019年1月6日
自由知乎 自由微博
其他

热点商品更新优化方案

则暴涨30-40倍,活跃会话暴涨导致正常的请求被堵住(都在处理扣减库存以及库存回补的update动作),导致业务请求也排队,超时或者被kill等一系列的雪崩效应。
2019年1月2日
其他

聊聊 隐式转换

除了以上的其他类型的比较,系统将字段和参数转换为浮点型进行比较。使用浮点数(或转换为浮点数的值)的比较是近似的,因为这样的数字是不精确的。看下面2个例子
2018年8月18日
其他

业务优化案例一则

前一段时间著名的"开封菜"在有赞开通了小程序,为了推广其小程序,他们从8月6号开始每天10点做拼团活动,1万人或者2000人成团,用户购买之后可以进行分享给朋友进行裂变。
2018年8月14日
其他

主从默认字符集不一样导致的主从同步报错

建表语句在没有指定字符集的时候,binlog里面也不会记录字符集格式,导致在从库新建表的时候根据库级别的字符集选择了utf8mb4的字符集,新增记录就报错了。
2018年6月29日
其他

浅析interactive_timeout和wait_timeout

MySQL服务器关闭交互式连接前等待的秒数。交互式客户端定义为在mysql_real_connect()中使用CLIENT_INTERACTIVE选项的客户端。参数默认值:28800秒。
2018年6月3日
其他

insert 语句加锁机制

之前的文章里面总结了很多死锁案例,其实里面有几篇文章对于insert加锁流程表述的不准确,而且微信公众号又无法修改,所以通过本文重新梳理insert加锁流程,最后加上一个死锁案例解析。
2018年5月26日
其他

死锁案例之十

业务开发同学要做业务逻辑迁移,由A表迁移到B表,B表承担所有的类型的业务,他们的业务逻辑是:上游发task_id列表给下游,下游的业务根据一定的逻辑进行处理,在并发更新时遇到死锁。
2018年4月21日
其他

死锁案例之九

其实针对此类并发insert导致的死锁,并没有好的解决方法,至少在sql层面没有行之有效的方法。之前的还可以调整sql的执行顺序,简化业务sql逻辑。但是对于此类情况
2018年4月1日
其他

死锁案例之八

死锁其实是一个很有意思也很有挑战的技术问题,大概每个DBA和部分开发朋友都会在工作过程中遇见。关于死锁我会持续写一个系列的案例分析,希望能够对想了解死锁的朋友有所帮助。
2018年3月29日
其他

死锁案例之七

更新操作,如果更新记录返回的affect_rows为0,然后就调用insert语句进行插入初始化。如果插入失败则再进行更新操作,多个会话并发操作的情况下就出现死锁。
2018年3月28日
其他

死锁案例之六

上面的案例中出现死锁是由于不同会话对普通索引idx_c1和主键相互竞争导致循环等待而出现死锁的。生产过程中遇到高并发更新同一行的的时候可以考虑避免通过不同的索引进行更新,进而避免死锁。
2018年3月27日
其他

MySQL优化案例一则

掉执行时间超过一定阈值的sql。下午开发接收到sql被kill的报错,一起帮助开发排查,本文介绍该案例。
2018年1月17日
其他

死锁案例之五

是主键,对聚集索引和二级索引的更新,都是采用标记删除+插入新记录的方式。对于聚集索引,由于PK列发生变化,采用delete
2018年1月6日
其他

MetaData Lock 之三

,会话2后执行alter,在会话1执行完毕前,会话2拿不到MDL锁,从表格上面来看,主要阻塞在rename阶段。会话1在执行完毕后,会话2拿到MDL锁,变为rename
2017年12月4日
其他

性能优化之分页查询

M行。对于此类操作,取前面少数几行数据会很快,但是扫描的记录数越多,SQL的性能就会越差,因为N越大,MySQL需要扫描越多的数据来定位到具体的N行,这样耗费大量的IO
2017年11月24日
其他

order by 原理以及优化

buffer不够而导致需要临时文件进行归并排序的问题。对于升序,采用大顶堆,最终堆中的元素组成了最小的N个元素,对于降序,采用小顶堆,最终堆中的元素组成了最大的N的元素。三
2017年11月14日
其他

order by 主键id导致全表扫描的问题

。因此我们推测是在优化器选择索引的时候出现了问题。结合源码和optimize_trace我们发现第一阶段优化的时候,优化器确实选择了idx_sidustsvidtype
2017年11月13日
其他

order by 结果不准确的问题

一个非唯一字段时,结果集并不总是确定的.已经确定为bug,详见:http://bugs.mysql.com/bug.php?id=72076。提醒读者朋友注意。二
2017年11月12日
其他

漫谈死锁

是并发系统中常见的问题,同样也会出现在Innodb系统中。当两个及以上的事务,双方都在等待对方释放已经持有的锁或者因为加锁顺序不一致造成循环等待锁资源,就会出现"死锁"。举例来说A
2017年10月14日
其他

死锁案例之四

获取阶段一的锁并且insert成功之后,插入的位置有Gap锁:LOCK_INSERT_INTENTION,为了防止其他insert唯一键冲突。新数据插入:LOCK_X
2017年10月13日
其他

死锁案例之三

本文案例和知识点一方面从官方文档获取,另一方面是根据何登成和姜承尧两位MySQL技术大牛的技术分享整理,算是站在巨人的肩膀上的学习总结。在研究分析死锁案例的过程中,insert
2017年10月12日
其他

死锁案例之二

RR事务隔离级别和GAP锁是导致死锁的常见原因,但是业务逻辑设计不合理也会出发死锁,本文的案例通过修改业务逻辑最终将死锁解决。
2017年10月11日
其他

死锁案例之一

waiting。原因是因为测试表结构发生了变化字段a由普通索引变为唯一键,RR模式下对唯一键操作是没有gap锁的,而且insert
2017年10月10日
其他

如何阅读死锁日志

工欲善其事必先利其器,前面分析了很多死锁案例,并没有详细的介绍如何通过死锁日志来诊断死锁的成因。本文将介绍如何读懂死锁日志,尽可能的获取信息来辅助我们解决死锁问题。二
2017年10月9日