【MySQL】MySQL5.6新特性之crash-safe
MySQL 5.6 针对复制功能提供了新特性: slave支持crash-safe. 该功能可以解决之前版本中系统异常断电可能导致的SQL thread 信息不准确的问题。本文从原理方面对该特性进行介绍。
【MySQL】MySQL5.6新特性之Batched Key Access
MySQL 5.6版本提供了很多性能优化的特性,其中之一是关于提高表join性能的算法 --- Batched Key Access (BKA) ,本文将结合之前写过MRR,BNL优化特性一起来详细介绍该算法。
【MySQL】Got fatal error 1236原因和解决方法
MySQL 的主从复制作为一项高可用特性,用于将主库的数据同步到从库,在维护主从复制数据库集群的时候,作为专职的MySQL DBA,大多数人都会遇到 “Got fatal error 1236 from master when reading data from binary log” 这类的报错/报警。本文整理了常见的几种 error 1236 报错,并给出相应的解决方法,有所不足之处,当然也希望各位读者朋友指正。
【MySQL】MySQL性能优化之Block Nested-Loop Join(BNL)
相信许多开发/DBA在使用MySQL的过程中,对于MySQL处理多表关联的方式或者说性能一直不太满意。对于开发提交的含有join的查询,一般比较抗拒,从而建议将join拆分,避免join可能带来的性能问题,同时也增加了程序和DB的网络交互。在5.5以后的版本中,MySQL通过引入BNL算法来优化嵌套执行,本文介绍两种join算法 Nested-Loop Join (NLJ) 和Block Nested-Loop Join(BNL) .
【案例】BNL算法导致性能下降一则
前面介绍了BNL算法,相信不少人会认为BNL会有利于数据库性能的提升(我也是这么认为滴),本文讲述一例生产上因为升级使用BNL 算法导致性能下降的案例。
【MySQL】MySQL5.6新特性之Multi-Range Read
Multi-Range-Read优化的好处,简称MRR,目的是减少磁盘的随机访问,把随机访问转化为比较顺序的访问,对于IO-bound类型的SQL有很大的性能提升。Multi-Range-Read优化适用于range/ref/eq_ref类型的查询。
【MySQL】replace into 浅析之二
本章内容通过一个例子说明 replace into 带来的潜在的数据质量风险,当涉及replace into操作的表含有自增主键时,主备切换后会造成数据覆盖等不一致的情况发生,并给出具体的解决方法,希望对读者朋友有所帮助。
【MySQL】replace into 浅析之一
在笔者支持业务过程中,经常遇到开发咨询replace into 的使用场景以及注意事项,这里做个总结。从功能原理,性能和注意事项上做个说明。
【案例】常驻查询引发的thread pool 性能问题之一
MySQL 的threadpool 新特性在海量高并发业务场景下极大的提高的系统并发性能,当然生产环境使用过程中也遇到种种问题,本文讲述一列 由于类似于 binlogdump 长连接导致系统系能抖动的问题,通过调整thread_pool_oversubscribe 参数解决
【案例】利用innodb_force_recovery 解决MySQL服务器crash无法重启问题
本文介绍了一例由于数据库服务器crash,然后通过非常规手段解决数据库日志文件损坏无法恢复的案例。
【案例】slave_net_timeout 问题一则
本文由 一个简单的业务报警,向下推演,介绍了MySQL 复制重连的机制 ,slave_net_timeout 参数的含义。
【MySQL】性能优化之 order by (一)
工作过程中,各种业务需求在访问数据库的时候要求有order by排序。有时候不必要的或者不合理的排序操作很可能导致数据库系统崩溃。如何处理好order by排序呢?本文从原理以及优化层面介绍 order by 。
【MySQL】5.7版本 Semisync Replication 增强
随着MySQL 5.7 的发布,新版本的MySQL修复了semi sync 的一些bug 并且增强了功能,新版的semi sync 设置一个独立的线程来接受slave 的ack,使得发送日志和接收slave 反馈 同时进行,提高了系统的事务处理能力。
【MySQL】 性能优化之 延迟关联
分页排序在数据库业务中十分常见,大数量的分页造成性能下降,给前端带来很差的用户体验而且也会对数据库本身带来很大压力,如何解决呢?本文通过介绍 延迟关联的思路和具体优化案例,希望能够给大家一些提示。
【MySQL】错误信息写入slave_relay_log.index 案例一则
本文源于生产上的一个不多见案例,由于错误信息写入slave_relay_log.index 导致报错。
【MySQL】Semisynchronous Replication 配置和参数说明
前文 Semisynchronous Replication 概述 已经介绍 semi sync的基本原理以及特性,优缺点。本章将进入实践,毕竟“纸上来得终觉浅,绝知此事要躬行”。^_^一环境准备 1 MySQL 5.5 + 版本 2 本例已经搭建好的MySQL Replication 同时也有另一种搭建方法先配置好semi sync ,然后再搭建主从。提示:如何搭...
【MySQL】Semisynchronous Replication 概述
MySQL 5.5版本之前默认的复制是异步(Asynchronous )模式的, MySQL 5.5 以plugins的方式提供了Semisynchronous Replication 模式。虽然5.5 版本的还不是很完善,但是极大保障了数据的安全性。
【MySQL】Insert buffer 漫谈
innodb使用insert buffer"欺骗"数据库:对于为非唯一索引,辅助索引的修改操作并非实时更新索引的叶子页,而是把若干对同一页面的更新缓存起来做合并为一次性更新操作,转化随机IO 为顺序IO,这样可以避免随机IO带来性能损耗,提高数据库的写性能。
【MySQL】数据库字符校对规则
一 什么是字符校对规则使用MySQL的大多数都知道字符集是一套符号和编码,而对校验本规则不太熟悉。校对规则是在字符集内用于比较字符的一套规则,可以控制 select 查询时where 条件大小写是否敏感的规则.如字段 col 在表中的值为 'abc','ABC','AbC' 在不同的校对规则下,where col='ABC'会有不同的结果。系统常用的字符校对...
【MySQL】如何获取自增id
去"O"的业务支撑的时候,遇到一个开发询问如何获取到MySQL 的自增id,这里做一个总结,我们可以通过四种方式来获取MySQL 的自增id。一 last_insert_id() 官方介绍如下: “The ID that was generated is maintained in the server on a per-connection basis. This means that the value returned by the fu...