随笔分类 -  MySQL

摘要:2021年9月底到新公司,公司核心数据库,以前无专业DBA维护,问题多,隐患大,到2022年2月持续后,优化至今: 优化大项: 1,从1主3从,扩容到1主5从,将部分读放都另外新加从库 2,最大表9.6亿+条,归档4.9亿条 3,容量控制(归档和重建) 超过500万条的40张表归档,27张超过1.5 阅读全文
posted @ 2022-02-28 17:17 zping 阅读(171) 评论(0) 推荐(0)
摘要:现在主库的MySQL的QPS一直在3K/s左右,想知道其到底执行了那些SQL,或者是那些SQL执行的次数比较多: 腾讯云的后台监控: 开启腾讯云的SQL审计后,下载几分钟SQL日志文件, 下列语句在MySQL建表,如我们下载了6分钟的单实例审计日志: CREATE TABLE `ex` ( `Aff 阅读全文
posted @ 2021-11-24 16:15 zping 阅读(858) 评论(0) 推荐(2)
摘要:B+Tree相对于B-Tree有几点不同: 非叶子节点只存储键值信息。 所有叶子节点之间都有一个链指针。 数据记录都存放在叶子节点中 实际情况中每个节点可能不能填充满,因此在数据库中,B+Tree的高度一般都在2~4层。mysql的InnoDB存储引擎在设计时是将根节点常驻内存的,也就是说查找某一键 阅读全文
posted @ 2021-08-18 17:31 zping 阅读(75) 评论(0) 推荐(0)
摘要:公司核心主库,在我来公司时是1主5从库(腾讯云RDS),外加7个自建级联从库。 从2020年2月到2021年8月优化总结: 1, 7个自建多级从库,从以前的中转同步改成从一级从库同步,废弃了5个从库实例,还有1个给大数据用,另外一个做备用 2,数据库容量控制, 期间清理出400多G空间的表数据 3, 阅读全文
posted @ 2021-08-12 16:52 zping 阅读(172) 评论(0) 推荐(0)
摘要:当初分析日志,麻烦的是腾讯云的SQL审计日志下载,有下列限制: 1,单次最多1000万条下载 2,单个实例最多生成5条日志文件,多的要先删除以前文件才能生成 腾讯云日志文件生成界面: 一开始用手工下载,想想也不多,可以忍受,弄了一段时间后,研发的要求越来越高,不能一直这样手工,刚好旁边的运维小伙用G 阅读全文
posted @ 2021-08-12 14:41 zping 阅读(178) 评论(0) 推荐(0)
摘要:下列优化的SQL案例,区别于平常加SQL索引的方法优化,大部分都是通过改写SQL语句方法优化,都是日常优化线上慢SQL的实际案例,有比较好的代表性(思路和方法),也是对自己这些年来做SQL优化的总结,对后面优化SQL有很好的提示和借鉴,案例会持续更新中。 说明: 最近优化慢SQL,执行计划错误和OR 阅读全文
posted @ 2021-06-08 10:39 zping 阅读(3713) 评论(0) 推荐(0)
摘要:1.1、工作原理 pt-table-checksum会对校验的表数据进行数据块(数据块大小根据服务负载情况调整)划分,并对数据块数据进行checksun处理;存储在建立的表中。在主库中执行基于statemnet的sql语句,生成数据块的checksum;在从库执行相同的sql语句,获取到数据块的ch 阅读全文
posted @ 2021-04-12 17:59 zping 阅读(1050) 评论(0) 推荐(0)
摘要:说明: 结合去年和今年的SQL优化,数据归档的实战经验,部分无法优化的SQL,提供一种优化思路:利用主键优化SQL。 案例1: update ter_cc set tmk_tongji_id=set_tmk_id where set_tmk_id!=0 and tmk_tongji_id !=set 阅读全文
posted @ 2021-04-06 15:09 zping 阅读(277) 评论(0) 推荐(0)
摘要:数据库日常维护中我们经常遇到死锁的问题,由于无法获取造成死锁的事务内执行过的语句,对我们死锁的分析造成很大的困难。但是在MySQL 5.7中我们可以利用performance_schema来获取这些语句,为我们解决死锁问题提供了一个新的思路,下面我们将解释这种方法的使用。 一、开启相关统计的方法 如 阅读全文
posted @ 2021-02-05 16:01 zping 阅读(457) 评论(0) 推荐(0)
摘要:因MySQL无排除表权限功能,测试隔离表回收权限以下方案: 1,代理账号(角色)方案 方案:创建一个代理账号(角色),对库的800多张表逐个赋权,58张隔离表赋只读,其他30多个账号绑定到这个代理账号 优点:30多个读写账号不用都对890多个表赋权,只需代理账号赋权即可,原有30多读写账号权限失效, 阅读全文
posted @ 2021-01-05 17:46 zping 阅读(438) 评论(0) 推荐(0)
摘要:并发字段修改业务 最近在主要在做“工作流引擎”课题的预研工作,在涉及到“会签任务”(工作流业务概念,这与我们今天讨论文问题没有太多关联)的时候,遇到了一个并发修改同一个字段的应用场景。 大致是由于要等一个活动节点的所有实例任务都完成之后才能继续向下流转,则引擎必须在每次任务提交的时候进行判断。我选择 阅读全文
posted @ 2020-11-17 16:16 zping 阅读(2256) 评论(1) 推荐(0)
摘要:ySQL的慢查询日志可以用来找出执行时间过长的查询语句,并进行针对性的优化。 一、slow log相关参数 以下参数都是动态参数,可以在实例运行时修改。 slow_query_log=1 #是否启用慢查询日志,1为启用,0为禁用 slow_query_log_file=slow.log #指定慢查询 阅读全文
posted @ 2020-08-21 17:40 zping 阅读(405) 评论(0) 推荐(0)
摘要:一、引言 最近由于业务需求,需要将公有云RDS(业务库)的大表数据归档至私有云MySQL(历史库),以缩减公有云RDS的体积和成本。 那么问题来了,数据归档的方式有n种,选择哪种呢?经过一番折腾,发现使用percona的pt-archiver就可以轻松并优雅地对MySQL进行数据归档。 待我娓娓道来 阅读全文
posted @ 2020-05-28 14:45 zping 阅读(582) 评论(1) 推荐(0)
摘要:上次我们说到mysql的一些sql查询方面的优化,包括查看explain执行计划,分析索引等等。今天我们分享一些 分析mysql表读写、索引等等操作的sql语句。 闲话不多说,直接上代码: 反映表的读写压力 SELECT file_name AS file, count_read, sum_numb 阅读全文
posted @ 2020-01-02 15:02 zping 阅读(905) 评论(0) 推荐(0)
摘要:performance-schema最早在MYSQL 5.5中出现,而现在5.6,5.7中performance-Schema又添加了更多的监控项,统计信息也更丰富,越来越有ORACLE-AWR统计信息的赶脚,真乃DBA童鞋进行性能诊断分析的福音。本文主要讲Performance-Schema中的配 阅读全文
posted @ 2020-01-02 14:52 zping 阅读(1295) 评论(0) 推荐(0)
摘要:前一篇文章我们分析了Performance-Schema中每个表的用途,以及主要字段的含义,比较侧重于理论的介绍。这篇文章我主要从DBA的角度出发,详细介绍如何通过Performance-Schema得到DBA关心的数据,比如哪个SQL执行次数最多,哪个表访问最频繁,哪个锁最热等信息。通过充分利用P 阅读全文
posted @ 2020-01-02 14:40 zping 阅读(399) 评论(0) 推荐(0)
摘要:1.performance_schema简介 MySQL的performance schema 用于监控MySQL server在一个较低级别的运行过程中的资源消耗、资源等待等情况。performance_schema的表中的数据不会持久化存储在磁盘中,而是保存在内存中,一旦服务器重启,这些数据会丢 阅读全文
posted @ 2020-01-02 14:29 zping 阅读(494) 评论(0) 推荐(0)
摘要:现象描述 Slave在开启并行复制后, 默认会乱序提交事务, 可能会引起同步中断; Slave端表现为同步的SQL线程抛出异常, 为主键重复, 修改的数据行不存在等; GTID信息类似于: 9a2a50aa-5504-11e7-9e59-246e965d93f4:1-1371939844:13719 阅读全文
posted @ 2019-12-30 17:34 zping 阅读(871) 评论(0) 推荐(0)
摘要:原文:http://www.bkjia.com/Mysql/1222405.html http://www.ywnds.com/?p=5045 performance_schema提供监控策略及大量监控项,包括:元数据锁、进度跟踪、事务、内存使用及存储程序等。但是,performance_schem 阅读全文
posted @ 2019-12-26 16:50 zping 阅读(337) 评论(0) 推荐(0)
摘要:DELIMITER $$ USE `mysql`$$ DROP PROCEDURE IF EXISTS `rds_rotate_slow_log`$$ CREATE DEFINER=`rdsadmin`@`localhost` PROCEDURE `rds_rotate_slow_log`() READS SQL DATA DETERMINISTIC BEGIN DEC... 阅读全文
posted @ 2019-12-05 16:09 zping 阅读(427) 评论(0) 推荐(0)