关于MySQL自增主键的几点问题(下)

AUTO-INC waiting 锁等待 这是生产环境出现的现象,某日下午5点业务高峰期,我们的 慢查询快照抓取程序 报出大量线程阻塞,但是1分钟以后就好了。于是分析了当时的 processlist 和 innodb status 现场记录,发现有大量的 AUTO-INC waiting: ...

2017-02-17 · 4 min

关于MySQL自增主键的几点问题(下)

AUTO-INC waiting 锁等待 这是生产环境出现的现象,某日下午5点业务高峰期,我们的 慢查询快照抓取程序 报出大量线程阻塞,但是1分钟以后就好了。于是分析了当时的 processlist 和 innodb status 现场记录,发现有大量的 AUTO-INC waiting: ...

2017-02-17 · 4 min

关于MySQL自增主键的几点问题(上)

前段时间遇到一个InnoDB表自增锁导致的问题,最近刚好有一个同行网友也问到自增锁的疑问,所以抽空系统的总结一下,这两个问题下篇会有阐述。 1. 划分三种插入类型 这里区分一下几种插入数据行的类型,便于后面描述:(纯逻辑上的划分) ...

2017-02-16 · 6 min

关于MySQL自增主键的几点问题(上)

前段时间遇到一个InnoDB表自增锁导致的问题,最近刚好有一个同行网友也问到自增锁的疑问,所以抽空系统的总结一下,这两个问题下篇会有阐述。 1. 划分三种插入类型 这里区分一下几种插入数据行的类型,便于后面描述:(纯逻辑上的划分) ...

2017-02-16 · 6 min

监控MySQL你还应该收集表信息

1. Story 也许你经常会被问到,库里某个表最近一年的内每个月的数据量增长情况。当然如果你有按月分表比较好办,挨个 show table status,如果只有一个大表,那估计要在大家都休息的时候,寂寞的夜里去跑sql统计了,因为你只能获取当前的表信息,历史信息追查不到了。 ...

2016-12-04 · 3 min

监控MySQL你还应该收集表信息

1. Story 也许你经常会被问到,库里某个表最近一年的内每个月的数据量增长情况。当然如果你有按月分表比较好办,挨个 show table status,如果只有一个大表,那估计要在大家都休息的时候,寂寞的夜里去跑sql统计了,因为你只能获取当前的表信息,历史信息追查不到了。 ...

2016-12-04 · 3 min

一种直观记录表结构变更历史的方法

1. Story 在没有形成自己的数据库管理平台以前,数据库实例一多(包括生产和测试环境),许多表要执行DDL会变得异常繁杂。 说个自己的经历,需要改现网的一个索引来看优化的效果,因为存在风险,不会一次全改,先只改1个库,然后逐步放开。前后验证效果可能花上一两周的时间,除非实现完整的记录了当时的ddl语句和对应的库,否则根本难以记得。这就完全依赖于个人的习惯及能力。 ...

2016-11-28 · 3 min

一种直观记录表结构变更历史的方法

1. Story 在没有形成自己的数据库管理平台以前,数据库实例一多(包括生产和测试环境),许多表要执行DDL会变得异常繁杂。 说个自己的经历,需要改现网的一个索引来看优化的效果,因为存在风险,不会一次全改,先只改1个库,然后逐步放开。前后验证效果可能花上一两周的时间,除非实现完整的记录了当时的ddl语句和对应的库,否则根本难以记得。这就完全依赖于个人的习惯及能力。 ...

2016-11-28 · 3 min

mysql使用utf8mb4经验吐血总结

1. utf8 与 utf8mb4 异同 先看 官方手册 https://dev.mysql.com/doc/refman/5.6/en/charset-unicode-utf8mb4.html 的说明: 1 2 3 4 The character set named utf8 uses a maximum of three bytes per character and contains only BMP characters. The utf8mb4 character set uses a maximum of four bytes per character supports supplementary characters: - For a BMP character, utf8 and utf8mb4 have identical storage characteristics: same code values, same encoding, same length. - For a supplementary character, utf8 cannot store the character at all, whereas utf8mb4 requires four bytes to store it. Because utf8 cannot store the character at all, you have no supplementary characters in utf8 columns and need not worry about converting characters or losing data when upgrading utf8 data from older versions of MySQL. MySQL在 5.5.3 之后增加了 utf8mb4 字符编码,mb4即 most bytes 4。简单说 utf8mb4 是 utf8 的超集并完全兼容utf8,能够用四个字节存储更多的字符。 ...

2016-10-23 · 7 min

mysql使用utf8mb4经验吐血总结

1. utf8 与 utf8mb4 异同 先看 官方手册 https://dev.mysql.com/doc/refman/5.6/en/charset-unicode-utf8mb4.html 的说明: 1 2 3 4 The character set named utf8 uses a maximum of three bytes per character and contains only BMP characters. The utf8mb4 character set uses a maximum of four bytes per character supports supplementary characters: - For a BMP character, utf8 and utf8mb4 have identical storage characteristics: same code values, same encoding, same length. - For a supplementary character, utf8 cannot store the character at all, whereas utf8mb4 requires four bytes to store it. Because utf8 cannot store the character at all, you have no supplementary characters in utf8 columns and need not worry about converting characters or losing data when upgrading utf8 data from older versions of MySQL. MySQL在 5.5.3 之后增加了 utf8mb4 字符编码,mb4即 most bytes 4。简单说 utf8mb4 是 utf8 的超集并完全兼容utf8,能够用四个字节存储更多的字符。 ...

2016-10-23 · 7 min