随笔分类 -  MySQL

摘要:数据库升级,是一项让人喜忧参半的工程。喜的是,通过升级,可以享受新版本带来的新特性及性能提升。忧的是,新版本可能与老的版本不兼容,不兼容主要体现在以下三方面: 语法不兼容。 语义不兼容。同一个SQL,在新老版本执行结果不一致。 新版本的查询性能更差。 所以,在对线上数据库进行升级之前,一般都会在测试 阅读全文
posted @ 2022-05-16 10:09 iVictor 阅读(4613) 评论(3) 推荐(3)
摘要:JSON 数据类型是 MySQL 5.7.8 开始支持的。在此之前,只能通过字符类型(CHAR,VARCHAR 或 TEXT )来保存 JSON 文档。 相对字符类型,原生的 JSON 类型具有以下优势: 在插入时能自动校验文档是否满足 JSON 格式的要求。 优化了存储格式。无需读取整个文档就能快 阅读全文
posted @ 2022-05-05 09:12 iVictor 阅读(33094) 评论(5) 推荐(7)
摘要:1. LOAD DATA INFILE 为什么比 INSERT 快? 2. sysbench 压测 MySQL 的四个标准步骤。 3. 怎么让 sysbench 支持 LOAD DATA LOCAL INFILE 命令,让导数速度提升 30%? 阅读全文
posted @ 2022-04-07 09:50 iVictor 阅读(1147) 评论(0) 推荐(1)
摘要:归档,在 MySQL 中,是一个相对高频的操作。 它通常涉及以下两个动作: 迁移。将数据从业务实例迁移到归档实例。 删除。从业务实例中删除已迁移的数据。 在处理类似需求时,都是开发童鞋提单给 DBA,由 DBA 来处理。 于是,很多开发童鞋就好奇,DBA 都是怎么执行归档操作的?归档条件没有索引会锁 阅读全文
posted @ 2022-03-14 07:02 iVictor 阅读(2937) 评论(1) 推荐(1)
摘要:DDL 被阻塞了,如何找到阻塞它的 SQL? 阅读全文
posted @ 2022-01-11 13:46 iVictor 阅读(1326) 评论(2) 推荐(2)
摘要:随着业务的不断发展,数据库中的数据会越来越多,相应地,单表的数据量也会越到越大,大到一个临界值,单表的查询性能就会下降。 这个临界值,并不能一概而论,它与硬件能力、具体业务有关。 虽然在很多 MySQL 运维规范里,都建议单表不超过 500w、1000w。 但实际上,我在生产环境,也见过大小超过 2 阅读全文
posted @ 2021-12-21 07:46 iVictor 阅读(9362) 评论(1) 推荐(2)
摘要:MySQL物理备份工具,常用的有两个:MySQL Enterprise Backup 和 XtraBackup。 前者常用于MySQL企业版,后者常用于MySQL社区版、Percona Server for MySQL 和 MariaDB。 所以,如果我们使用的是后三者,在实例较大的情况下,一般都会 阅读全文
posted @ 2021-11-14 21:59 iVictor 阅读(1375) 评论(1) 推荐(0)
摘要:​数据库备份的重要性毋庸置疑,可以说,它是数据安全的最后一道防线。鉴于此,对于备份,我们通常会做以下要求: 多地部署 对于核心数据库,我们通常有两地三中心的部署要求。对于备份来说,也是如此。 一个备份应该有多个副本,每个副本存储在不同区域。 多介质部署 一个备份的多个副本应存储在不同介质上,如磁盘和 阅读全文
posted @ 2021-10-16 11:31 iVictor 阅读(3859) 评论(5) 推荐(0)
摘要:在使用MySQL的过程中,在存储字符串时,大家或许都有过这样或那样的困惑,譬如: 1. 对于固定长度的字符串,为什么推荐使用 CHAR 来存储? 2. VARCHAR 可设置的最大长度是多少? 3. 给定一个字符串,怎么知道它的空间使用情况? 4. 创建索引时,提示“Index column siz 阅读全文
posted @ 2021-08-14 22:59 iVictor 阅读(48139) 评论(2) 推荐(10)
摘要:“Too many open files”是一个比较常见的错误,不仅仅是在 MySQL 中。只要是在 Linux 中启动的进程,都有可能遇到这个错误。 究其原因,是进程打开的文件描述符数超过了自身的限制。 这个限制,是进程级别的,在 MySQL 中,与 open_files_limit 的设置有关。 阅读全文
posted @ 2021-07-19 09:13 iVictor 阅读(2793) 评论(0) 推荐(3)
摘要:最近碰到一个case,值得分享一下。 现象 一个DDL,将列的属性从null调整为not null default xxx, alter table slowtech.t1 modify name varchar(10) not null default 'slowtech'; 通过平台执行(平台调 阅读全文
posted @ 2021-01-30 07:55 iVictor 阅读(5331) 评论(1) 推荐(2)
摘要:SQL_MODE是MySQL中的一个系统变量(variable),可由多个MODE组成,每个MODE控制一种行为,如是否允许除数为0,日期中是否允许'0000-00-00'值。 为什么需要关注SQL_MODE呢? 首先,看三个简单的Demo(MySQL 5.6)。 1. mysql> create 阅读全文
posted @ 2019-11-04 09:30 iVictor 阅读(7942) 评论(1) 推荐(2)
摘要:对于MySQL的历史,相信很多人早已耳熟能详,这里就不要赘述。下面仅从产品特性的角度梳理其发展过程中的里程碑事件。 1995年,MySQL 1.0发布,仅供内部使用。 1996年,MySQL 3.11.1发布,直接跳过了MySQL 2.x版本。 1999年,MySQL AB公司成立。同年,发布MyS 阅读全文
posted @ 2018-10-18 08:54 iVictor 阅读(33940) 评论(11) 推荐(20)
摘要:在上一篇文章《MySQL 5.7中如何定位DDL被阻塞的问题》中,对于DDL被阻塞问题的定位,我们主要是基于MySQL 5.7新引入的performance_schema.metadata_locks表。提出的定位方法,颇有种"锦上添花"的意味,而且,也只适用于MySQL 5.7开始的版本。 但在实 阅读全文
posted @ 2018-08-21 21:07 iVictor 阅读(2130) 评论(5) 推荐(2)
摘要:在上篇文章《MySQL表结构变更,不可不知的Metadata Lock》中,我们介绍了MDL引入的背景,及基本概念,从“道”的层面知道了什么是MDL。下面就从“术”的层面看看如何定位MDL的相关问题。 在MySQL 5.7中,针对MDL,引入了一张新表performance_schema.metad 阅读全文
posted @ 2018-08-14 10:36 iVictor 阅读(5469) 评论(0) 推荐(3)
摘要:在线上进行DDL操作时,相对于其可能带来的系统负载,其实,我们最担心的还是MDL其可能导致的阻塞问题。 一旦DDL操作因获取不到MDL被阻塞,后续其它针对该表的其它操作都会被阻塞。典型如下,如阻塞稍久的话,我们会看到Threads_running飙升,CPU告警。 mysql> show proce 阅读全文
posted @ 2018-08-13 10:01 iVictor 阅读(3007) 评论(7) 推荐(2)
摘要:很多童鞋在启动mysql的时候,碰到过这个错误, 首先,澄清一点,出现这个错误的前提是:通过服务脚本来启动mysql。通过mysqld_safe或mysqld启动mysql实例并不会报这个错误。 那么,出现这个错误的原因具体是什么呢? 哈哈,对分析过程不care的童鞋可直接跳到文末的总结部分~ 总结 阅读全文
posted @ 2017-05-17 15:19 iVictor 阅读(57750) 评论(0) 推荐(3)
摘要:今天,有个哥们碰到一个问题,他有一个从库,只要是启动MySQL,CPU使用率就非常高,其中sys占比也比较高,具体可见下图。 注意:他的生产环境是物理机,单个CPU,4个Core。 于是,他抓取了CPU的历史信息,发现CPU飙高大概是从2017年1月1日8点10分开始的。 但是这个从库的负载并不高, 阅读全文
posted @ 2017-01-04 17:03 iVictor 阅读(5537) 评论(18) 推荐(10)
摘要:命令如下: 其中-i指定监听的网络接口,在RHEL 7下,网络接口名不再是之前的eth0,而是 eno16777736。 在RHEL 5&6下,可直接不带-i参数,因为它默认是eth0。在RHEL 7下,如果不用-i参数指定网络接口,则会报如下错误: 阅读全文
posted @ 2016-12-12 11:53 iVictor 阅读(6311) 评论(0) 推荐(1)
摘要:在用mysql客户端对数据库进行操作时,打开终端窗口,如果一段时间没有操作,再次操作时,常常会报如下错误: 这个报错信息就意味着当前的连接已经断开,需要重新建立连接。 那么,连接的时长是如何确认的? 其实,这个与interactive_timeout和wait_timeout的设置有关。 首先,看看 阅读全文
posted @ 2016-10-20 12:10 iVictor 阅读(65952) 评论(2) 推荐(17)