All Stories

MySQL手记6 — percona-toolkit工具包

对于经常用到的工具,例如使用pt-archiver进行数据的归档、使用pt-online-schema-change进行表结构的变更、使用pt-table-checksum对比两个表的checksum是否一致等等,都能灵活的进行。

MySQL手记5 — 数据库升级准备

数据迁移是一个很重要的过程,需规划严格的流程,并制定回滚方案。对于数据库系统,若能够满足业务需求,都是尽量不动,我曾看到过uptime为10+年的数据库系统,不得不佩服开发人员和产品对于该产品的把控程度。

MySQL手记4 — Sysbench进行QPS性能测试

加上上篇的MySQL手记2 -- sysbench测试磁盘IO,已经可以使用sysbench测试得到IOPS和QPS/TPS的结果了,这对于业务上线,提供了参考​。压测这一步,也不能马虎​。

MySQL手记2 — sysbench测试磁盘IO

对于基础硬件资源的性能测试,刚工作时,我也是人云亦云,不知道为什么要这么去做。在后面的工作中,逐渐意识到了性能压测,又或称其为基准测试的重要性。

MySQL手记1 — 初识数据库系统

拿服务器的选型来说,磁盘这块的测试,需要知道为什么选择SSD?做RAID的目的是什么?都是前期测试的结果

Tips: MySQL8.0版本DEFAULT_GENERATED的问题

MySQL8.0, DEFAULT_GENERATED for columns that have an expression default value.

Tips: mysqldump8.0导出MySQL5.7版本的数据时报错

MySQL8.0版本中,mysqldump加入了参数 --column-statistics,默认为打开,在导出时,需要在information_schema.column_statistics表中检查导出表的信息。

MySQL刷脏让应用抖了一下?

对于MySQL的刷脏,应当调整数据库的相关配置,使该过程平滑进行,不要影响到业务。在本片文章中,介绍了排查的思路,若在日志中看到刷脏耗时较长,且导致了慢查,可参考本文的思路进行排查。

MySQL8.0迁移到5.7中的正则表达REGEXP坑

MySQL从8.0.4开始支持International Components for Unicode(ICU)包,在此版本之前,用的是Henry Spencer's引擎,所以在不通版本数据库中使用正则表达,可能会出现不通结果。

SpringBootApplication启动排除DataSourceAutoConfiguration不生效???

项目引用了新版本mybatis-spring-boot-starter之后启动不起来,报错Cannot determine embedded database driver class for database type NONE,在网上搜索是需要在排除掉spring自身的org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration这个类就可以,不让其自动配置。 由于项目是采用spring boot框架,所以在@SpringBootApplication中exclude这个类即可: 改之前代码:

踩坑之InputStream.read(byte[])方法

项目之前都是好好的,最近现场那边出现一个问题,报错不是合法的json字符串,这个json字符串是通过http请求访问获得的。 通过直接在浏览器上直接访问http这个请求,发现返回的json也是完全正确的。后来排查代码才发现了原来错误出在从字节流中读取数据这里: 看下之前出错代码:这个方法是处理InputStream,然后返回成一个字符串。