中间件与数据库:MySQL
MySQL 全文索引
从 MySQL5.7 开始,MySQL 内置了 ngram 全文检索插件,用来支持中文分词,并且对 MyISAM 和InnoDB 引擎有效。因此可以通过 MySQL 服务接入 full-text 索引来实现简单地全文检索需求。
MySQL 全文索引触发 OOM 一例
业务监控告警内存不足,笔者进行了全面系统的故障分析并给出解决方案。
MySQL 索引的底层逻辑
本文以 MySQL 数据库为研究对象,讨论与数据库索引相关的一些话题。
详解 MySQL 三表 JOIN
三表 JOIN 的执行流程和效率到底跟两表 JOIN 有什么区别?
MySQL Binlog 入门
binlog 是一个二进制格式的文件,用于记录用户对数据库更新的 SQL 语句信息,例如更改数据库表和更改内容的 SQL 语句都会记录到 binlog 里,但是对库表等内容的查询不会记录。
MySQL死锁浅析
数据库锁设计的初衷是处理并发问题。作为共享资源,当出现并发访问的时候,数据库需要合理地控制共享资源的访问。锁就是用来实现这些访问规则的重要数据结构。然而,不合理地使用锁也带来了其他问题。
记一次线上问题引发的对 Mysql 锁机制分析
本文以一个线上问题为背景,对 Mysql 中的各种锁机制进行了详细的总结,分析了各个锁的加锁时机和具体使用场景,其中特别要注意间隙锁的使用,因间隙锁和间隙锁之间不互斥,当多个事务之间并发执行时很容易形成死锁。
浅谈MySQL分页查询的工作原理
MySQL 的分页查询在我们的开发过程中还是很常见的,比如一些后台管理系统,我们一般会有查询订单列表页、商品列表页等。
浅析MySQL之MVCC机制
MVCC 在 MySQL InnoDB 中的实现主要是为了提高数据库并发性能,用更好的方式去处理读写冲突,做到即使有读写冲突时,也能做到不加锁,做到非阻塞并发读。
研发日常踩坑-Mysql分页数据重复
MySQL 分页查询接口出现重复数据?你日常有没有遇到这样的坑?本文详细讲解了order by和limit混用的时候,为什么出现了排序的混乱情况。
浅谈Mysql读写分离的坑以及应对的方案
为什么我们要进行读写分离?个人觉得还是业务发展到一定的规模,驱动技术架构的改革,读写分离可以减轻单台服务器的压力,将读请求和写请求分流到不同的服务器,分摊单台服务的负载,提高可用性,提高读请求的性能。
高性能MySQL实战(三):性能优化
这篇主要介绍对慢 SQL 优化的一些手段,而在讲解具体的优化措施之前,我想先对 EXPLAIN 进行介绍,它是我们在分析查询时必要的操作,理解了它输出结果的内容更有利于我们优化 SQL。为了方便大家的阅读,在下文中规定类似 key1 的表示二级索引,key_part1 表示联合索引的第一部分,unique_key1 则表示唯一二级索引,primary_key 表示主键索引。
MySQL到TiDB:Hive Metastore横向扩展之路
vivo在大数据元数据服务横向扩展道路上的探索历程。
高性能MySQL实战(二):索引
我们在上篇 高性能MySQL实战(一):表结构 中已经建立好了表结构,这篇我们则是针对已有的表结构和搜索条件为表创建索引。
MySQL事务死锁问题排查
一个简单的MySQL事务竟然暗藏死锁风险,通过深入分析MySQL锁机制,逐步解开死锁背后的神秘面纱。
我跟面试官说MySQL单表数据量不要超过两千万,面试官不信
作为一个合格的 DBA,在遇到线上单表数据量超过千万级别的时候,往往会建议用户通过分表来缩减单表数据量,当用户问为什么单表数据量不能超过千万时,DBA 往往会说:单表数据量超过千万,会影响查询性能。知其然而不知所以然,学习技术不能停留在表面,而是要进一步去深入挖掘其中的原理,这样才能不断进步和成长。回到这个问题:为什么单表数据量不能超过两千万,其中的依据是什么?