随笔分类 -  MySQL

摘要:官方文档:https://dev.mysql.com/doc/refman/5.7/en/bnl-bka-optimization.html BNL和BKA是MySQL 表关联的两种关联算法 比如t1、t2、t3关联查询且查询顺序和关联顺序一致,MySQL处理join的过程一般是 t1和t2的关联的 阅读全文
posted @ 2018-08-05 15:31 西橙 阅读(290) 评论(0) 推荐(0)
摘要:使用背景 线上物理备份任务是在从库上进行的,xtrabackup会在备份binlog的时候执行flush logs,relay-log会rotate到新的一个文件号,导致sql thread线程应用完之后无法自动删除 这时候就可以引入purge_relay_logs做成执行计划自动清理relay l 阅读全文
posted @ 2018-06-28 16:41 西橙 阅读(1008) 评论(0) 推荐(0)
摘要:MySQL社区版没有自带的设计功能或插件。调研发现MariaDB的audit plugin 同样适用于MySQL,支持更细粒度的审计,比如只审计DDL操作,满足我们的需求。因为最近测试环境的某表结构经常性的被变更且数据被清空的情况,所以引入MariaDB的插件对DDL进行审计 MariaDB aud 阅读全文
posted @ 2018-04-16 13:33 西橙 阅读(5078) 评论(0) 推荐(0)
摘要:需求情景:实例1中A库中的三个视图是实例2中的B库所依赖的,B需要A库中三个视图的实时数据。 方案:通过FEDERATED来完成跨势力的查询FEDERATED存储引擎表只会创建表结构,不会存储表数据,可以通过建表语句中的CONNECTION [=] 'connect_string'来指定访问远端数据 阅读全文
posted @ 2018-03-03 15:19 西橙 阅读(346) 评论(0) 推荐(0)
摘要:MySQL5.6起performance schema自动开启,里面涉及记录 statement event的表 statement event 的设置 详细参考官方文档:https://dev.mysql.com/doc/refman/5.6/en/performance-schema-state 阅读全文
posted @ 2018-01-22 22:10 西橙 阅读(540) 评论(0) 推荐(0)
摘要:mysql 使用utf8字符集默认的校验规则collate为utf8_general_ci,不区分数据的大小写 测试如下 修改数据库和表的字符集对已存入的和后来插入的数据都无影响,数据的collate依然是默认的 修改相关变量不起效,变更字段的collate才奏效 阅读全文
posted @ 2017-12-26 16:12 西橙 阅读(880) 评论(0) 推荐(0)
摘要:参考官网:https://dev.mysql.com/doc/refman/5.7/en/replication-features-triggers.html 需要了解复制和触发器关系的背景: 程序变更的数据和账单对不上,但从程序上无法找到问题,于是开发人员想在数据库层记录通过触发器来记录每次变更的 阅读全文
posted @ 2017-07-13 13:35 西橙 阅读(460) 评论(0) 推荐(0)
摘要:事发背景 测试环境更换数据盘,直接采取在线将数据目录暴力拷贝到新盘,然后将原服务关闭,启用新盘。 服务是可以正常启动的,但是没多会开发就反应服务down了,错误日志输出 2017-05-17 15:06:28 0x7ffdadff7700 InnoDB: Assertion failure in t 阅读全文
posted @ 2017-05-17 18:26 西橙 阅读(2570) 评论(0) 推荐(0)
摘要:官方文档:https://github.com/session-replay-tools/mysql-replay-module tcpcopy可以将正式环境上来自客户端的请求复制一份到测试端并复现,想要真实的对MySQL进行容量规划,可以借助tcpcopy来将线上的流量 呈倍数的增长,将其复制到测 阅读全文
posted @ 2017-04-20 18:14 西橙 阅读(1241) 评论(0) 推荐(0)
摘要:半连接是MySQL 5.6.5引入的,多在子查询exists中使用,对外部row source的每个键值,查找到内部row source匹配的第一个键值后就返回,如果找到就不用再查找内部row source其他的键值了。 测试环境 roster表中记录的是学生的学号以及对应的教室,多个学生可能在同一 阅读全文
posted @ 2016-10-09 16:38 西橙 阅读(2745) 评论(0) 推荐(1)
摘要:字符集参考文献: http://dev.mysql.com/doc/refman/5.6/en/server-system-variables.html#sysvar_character_set_connection http://dev.mysql.com/doc/refman/5.6/en/fa 阅读全文
posted @ 2016-10-09 11:13 西橙 阅读(15259) 评论(0) 推荐(0)
摘要:现有需求:需要备份MySQL5.6环境下的部分表到MySQL5.7环境下并进行恢复 通过xtrabackup 实现部分备份有三种方式: 参考链接:http://blog.csdn.net/zhu19774279/article/details/49681767 我这里测试了两种方法: way1 wa 阅读全文
posted @ 2016-10-08 18:22 西橙 阅读(4661) 评论(0) 推荐(0)
摘要:MySQL Server提供general query 和slow query的跟踪记录功能,现在只说说慢查询日志。 开启参数:--slow_query_log 记录格式参数:--log-output=TABLE,FILE 如果value是TABLE,则慢日志记录在表mysql.slow_log 设 阅读全文
posted @ 2016-09-29 11:28 西橙 阅读(124) 评论(0) 推荐(0)
摘要:为落实数据库规范,既每个表字段都需要有comment注释,所以需要过滤生产表中没有comment的字段,搜索出还不错的过滤语句 show clumns的语法如下 然后结合shell脚本就可以轻松批量过滤出没有注释的表字段了 阅读全文
posted @ 2016-09-18 15:36 西橙 阅读(376) 评论(0) 推荐(0)
摘要:salve复制线程停止,尝试start slave 时报ERROR 1872错误mysql> system perror 1872MySQL error code 1872 (ER_SLAVE_RLI_INIT_REPOSITORY): Slave failed to initialize rela 阅读全文
posted @ 2016-09-09 15:09 西橙 阅读(11054) 评论(0) 推荐(0)
摘要:1.错误发生场景:使用2.4.1版本的xtrabackup工具进行全备,备份日志中报出此错误2.知识要点:MySQL中,redo 日志写进程会在三种条件下被触发从log buffer中写日志到redo log file中,分别是每隔一秒、日志达到log buffer的1/3、每一次提交的时候。刷新日 阅读全文
posted @ 2016-09-09 15:08 西橙 阅读(1124) 评论(0) 推荐(0)
摘要:通过FEDERATED存储引擎同步两实例间的表数据需求情景:实例1中A库中的三个视图是实例2中的B库所依赖的,B需要A库中三个视图的实时数据。方案:通过FEDERATED来完成跨势力的查询FEDERATED存储引擎表只会创建表结构,不会存储表数据,可以通过建表语句中的CONNECTION [=] ' 阅读全文
posted @ 2016-09-09 15:07 西橙 阅读(352) 评论(0) 推荐(0)
摘要:测试环境 安装软件包 节点3:安装MHA-manager 依赖包 所有节点:安装MHA-note 依赖包 配置 注:gtid模式可以设置[binlog1]模块,此处已开启gtid模式但是没有设置binlog server Requirement SSH认证 candidate masters要开启l 阅读全文
posted @ 2016-08-24 13:37 西橙 阅读(277) 评论(0) 推荐(0)