MySQL RR隔离级别的更新冲突策略
对于事务的隔离级别,MySQL中默认是RR, Oracle中默认是RC,两个事务隔离级别存在着很大的差别,而换句话说,就算是RR的事务隔离级别级别,同是关系型数据库MySQL,SQLServer,postgreSQL也会有一些差别。所以隔离级别的部分还是值得花一些时间来总结一下。 之前看到过丁奇大师的一篇文章,是分析Inno...
通过shell脚本模拟MySQL自增列的不一致问题
MySQL的自增列问题其实很有意思,在重启数据库之后,会按照max(id)+1的方式来计算,这样一个看起来有些别扭的实现方式在早期版本就饱受诟病,在MySQL 5.7都没有解决掉,终于在8.0松口了,计划在这个版本中修复。 而重启会带来自增列一类的潜在问题,而如果不重启其实也有可能会有自增列的不...
Oracle分区数据问题的分析和修复
今天根据同事的反馈,处理了一个分区表的问题,也让我对Oracle的分区表功能有了进一步的理解。 首先根据开发同事的反馈,他们在程序批量插入一部分数据的时候,总是会有一部分请求执行失败,而查看日志就是ORA-14400的错误,对于这类问题,我有一个很直观的感觉,分区有问题。> INSERT INTO DY_USER_ANALYS...
MySQL中GTID的几个限制和解决方案(r13笔记第21天)
现在我看待一个技术,总是会换一种角度来看,在他能实现什么的基础上,我更喜欢看他不能做什么,为什么不能这么做。 比如MySQL GTID在5.6试水,5.7已经发展完善,但是还是有一些场景是受限的。比如下面的两个。 一个是create table xxx as select 的模式,另外一个是...
MySQL句柄恢复的简单尝试
今天突然想起一个问题,那就是对于ibdata的恢复,如果我们简单模拟一下,就会发现还是蛮有意思的。首先我们得到两个参数值,一个是刷脏页的指标,另外一个是数据文件的目录。mysql> show variables like '%pct%';+------------------------------------------+-----------+| Variable_name &n...
DAMS峰会归来
参加了社群DBAplus组织的活动,其实还是蛮有收获。很多具体的想法谈不上,其实还是自己的技术沉淀不够,但是还是有了一些思路和脉络,这是好事。还有一个好处就是又见到了很多新朋友,老朋友。 峰会是DAMS,数据资产峰会,我在下午的专题场有个分享。 整个会议的安排如下,去年年底的...
推荐今天的几点收获
今天和大家分享几个工作学习中的几点收获。 首先是对于学习,一直以来,对于internal的东西我都是抱有很大的兴趣,有时候会有些过头,因为回过头来在工作中难以联系和应用起来。你说这样的知识有没有价值,绝大多数是有的,但是如果有一部分确实是浪费了时间,而且如果换一个角度,从自己应用的场景来把这...
MySQL 5.6,5.7的优化器对于count(*)的处理方式
最近看了很多阿里同学的MySQL文章,阿里内核同学的文章一言不合就上代码,不光让我们看到了结果,还能有代码可读,如果碰到了类似的问题,这样的解读确实是很难得的。 今天做了一个小的测试,发现MySQL 5.7中对于count(*)的处理好像有点霸道,没想象中那么好。 为了对比,...
MySQL的学习图谱(初版)
周末总结了下关于MySQL学习的一些思路,当然还有很多需要补充的地方。我是侧重从优化的角度来总结的一部分内容,所以数据迁移,数据管理的部分就和很多地方糅合在了一起。总结之后突然发现对于开发规范和建议的地方自己感触还蛮深。...
MySQL索引条件下推的简单测试
自MySQL 5.6开始,在索引方面有了一些改进,比如索引条件下推(Index condition pushdown,ICP),严格来说属于优化器层面的改进。如果简单来理解,就是优化器会尽可能的把indexcondition的处理从Server层下推到存储引擎层。举一个例子,有一个表中含有组合索引idx_cols包含(c1,c2,…,cn)n个列,如果在c1上存在范围...
Oracle 12cR2中的ADG会话保留特性
Oracle 12cR2中有一个不错的特性,那就是Active Data Guard会话保留,原本的叫法是Preserving Active Data Guard Application Connections 怎么理解呢,比如在Active Data Guard上的连接会话,在switchover的过程中会话连接会始终保持不会中断。这一点听起来就很有特点,能够提高用户...
Oracle和MySQL中短小精悍的SQL
如果让你写一个简单牛叉的SQL,数据库类型不限,你会写出什么样的SQL语句。Oracle 如果是Oracle,我就写个drop table dual;这个SQL看起来很简单,包含的信息量还是蛮大的,首先对于dual表你得有一定的认识和了解,而这个视图和一般的数据字典不同,如果删除之后,直接会导致数据库不可用。恢复...
IP地址定位区间的问题分析(r13笔记第9天)
以前写过一篇Oracle中关于IP地址定位的问题分析,最后引申出了一系列的问题。当时问题紧急严峻,抓取了10053事件定位源头,想出了一个解决妙法,还自鸣得意了下,结果忙活完之后看看行业里的解决方案都大体如此,我的心凉了半截。 我总是希望找到一些与众不同的点来解读这一类问题,结果在...
MySQL中需要注意的字段长度问题
在MySQL的表结构设计中,突然想起来几个地方碰到的问题比较多,大体来说一个就是字符集,一个就是数据类型。而字符集和数据类型结合起来,就有一个蛮有意思的细节,那就是行长度的问题。比如我们创建一个表使用了varchar的类型,如果指定为gbk,表里含有一个字段,可以指定为32766字节,如果再长一些就不行了。...
一个跨平台数据迁移的方案优化
如果有一套环境,业务优先级很高,服务器的服役时间比我工作时间都长,现在需要迁移到X86平台,而且经过评估,如果能够升级数据库的软件版本,可以使用到更多的特性和功能。这套环境的数据量大概是800G,停机维护时间在2个小时的样子,对于很多公司来说,尽可能缩短维护窗口时间,提前起服就意味着有更多的...
再见了,老铁
在青春萌动的时候,我非常喜欢郭敬明的文字,就如同看现在的年轻人喜欢《小时代》一样不可理解。郭敬明的书我记得有一篇得叫做 《一个人》,大体讲的就是几个玩得非常好的朋友,最后因为各种各样的原因,最后各奔东西,随着时间的推移,而慢慢生疏,最终成了陌生人。这种感觉我在大学里感触很深,于是我花了好几...
高考数据分析和读书感悟
高考成绩的数据分析昨天分析了下高考的数据。通过数字看高考分数,你可能真不了解高考成绩,截止昨天还有4个省份还没有公开,今天我更新了下,收集了目前能收集到的数据,做了一个基本的分析,也有了一些自己的理解。以全国卷一为例,几个省份的分数线一本二本的情况一目了然。红色是一本线,浅绿色为...
通过数字看高考分数(r13笔记第4天)
最近总是看到很多高考的信息,但是信息相对较散,我一直没有看到一个完整的信息,算了,还是自己整理一份。 首先高考的试卷不是一张卷统一,而是分了很多的类别。你可以理解为主要还是因为不同地区经济、教育发展不均衡的原因。2017年高考试卷的分类11、全国Ⅰ卷地区:河南、河北、山西、江西...
MySQL中一个文档疏漏的分析测试(r13笔记第3天)
最近看到Percona的工程师Agustín写了一篇博客,是关于MySQL触发器和可更新视图的一个观点,具体链接可以参考 https://www.percona.com/blog/2017/06/14/triggers-and-updatable-views/ 官方文档对于触发器的基本描述是这样的:Important: MySQL triggers activate only for changes made to...
一个复杂的数据需求的MySQL方案
前些天处理了一个需求,当时的数据库环境是Oracle,我算是想尽了Oracle相关的方案,而且在问题的处理过程中,还在不断的琢磨,如果失败了还有什么其他的方案。 所以尽管Oracle这么一个成熟的商业数据库,做起来还是有些难度,需要一些额外的技巧,比如规避bug,间接实现需求等。 &n...