中间件与数据库:MySQL
MySQL At Uber
Uber的MySQL数据库系统是其数据基础设施的核心,管理着2300多个独立集群,确保高可用性和数据无丢失。通过控制平面的重新设计,实现了从99.9%到99.99%的可用性提升。关键功能包括集群管理、主节点故障切换、节点生命周期管理和数据库操作。自动化流程如节点替换和架构变更,确保了系统的灵活性和稳定性。使用Cadence驱动的工作流提升了操作效率,提供了可靠的MySQL平台支持Uber的多种服务需求。
MySQL索引学习笔记
深入探讨MySQL慢查询分析的关键技术,重点在于优化查询的响应时间、扫描行数和返回行数。通过示例展示索引在查询中的重要性,特别是全表扫描和索引覆盖扫描的对比。介绍聚簇索引及覆盖索引的概念,强调索引列顺序和最左前缀法则对查询优化的影响,并详述文件排序的使用条件及影响。
小红书MySQL数据一致性校验能力探索与实践
数据一致性校验如何在小红书实践并落地。
基础设施即代码初探-开发Terraform Provider管理私有云MySQL实例
基础设施即代码(Infrastructure as Code, IaC)已经成为云时代DevOps实践中不可或缺的一环。通过代码来管理和配置基础设施,我们可以像开发软件一样,用工程化的方法来对待基础设施。在IaC领域,Terraform无疑是最流行的工具之一。
MySQL核心揭秘:从查询到修改,彻底理解 Undo Log、Redo Log、Binlog 与 ACID 的关系
本文将带您深入探讨MySQL中Undo Log、Redo Log和Binlog的核心机制,全面解析它们如何协同工作以保障事务的ACID特性。从查询优化到数据修改,我们将揭示这些日志在实际应用中的具体实现方式和作用机制,帮助您全面掌握MySQL事务管理的内部原理,提升数据库设计和运维的能力。
从MySQL JOIN 算法角度看如何优化SQL
在做MySQL的SQL优化时,如果只涉及到单表查询,那么大部分慢SQL都只需从索引上入手优化即可,通过添加合适的索引来消除全表扫描或者排序操作,执行效果,大概率能实现质的飞跃。
深入剖析MySQL Buffer Pool
Buffer Pool 作为MySQL当中至关重要的一个组件,MySQL所有增删改的操作,都需要在 Buffer Pool 中执行。
一文读懂 MySQL 并行查询 & DDL
随着用户表上数据量的增加,一些SQL的执行时间会变得越来越长。比如一些需要全表扫描的查询SQL,数据扫描过程会耗费一定的时间,表越大时扫描时间越久。再比如一些创建二级索引、重建表的DDL操作,会扫描全表,并做排序操作,表越大时扫描和排序耗时都会比较久。
为提升SQL查询性能,MySQL社区于8.0.14推出了InnoDB并行扫描特性,可通过innodb_parallel_read_threads变量控制并行扫描聚簇索引的线程数量;于 8.0.27 支持并行创建索引,可通过innodb_ddl_threads控制创建二级索引的并行线程数量,加速索引创建过程。MySQL的并行当前仅限于InnoDB层对全表的一个并行。
本文以8.0.37代码为基准,对InnoDB层的这些并行技术做一些基本介绍、原理解析。
浅析MySQL Join Reorder算法
本文浅析了MySQL Join Reorder算法的流程,cost计算,剪枝算法等,希望通过本文能帮助大家了解MySQL优化器生成执行计划的具体流程。
咦~ MySQL怎么出现幻读啦!
InnoDB默认的事务隔离级别是REPEATABLE-READ,它为了解决该隔离级别并发情况下的幻读问题,使用了LBCC(基于锁的并发控制)和MVCC(多版本的并发控制)两种方案。其中LBCC解决的是当前读情况下的幻读问题,MVCC解决的是快照读情况下的幻读问题,那既然如此,该隔离级别下是否仍然还存在幻读的问题呢?幻读问题到底有没有完全解决呢?
MYSQL死锁-更新插入导致死锁
MySQL死锁问题大家或多或少都有了解,但是面对实际场景该如何排查呢,本文将通过实际的例子来带大家一起揭秘。
MySQL亿级数据平滑迁移实战
本文介绍了一次 MySQL 数据迁移的流程,通过方案选型、业务改造、双写迁移最终实现了亿级数据的迁移。
MySQL 索引合并优化实践
走单个二级索引还是走索引合并更快?
MySQL如何实现并发控制?(下)
解读「页级别、行级别的并发访问控制」。
MySQL 8.0:filesort 性能退化的问题分析
本文就用户将 RDS MySQL 实例从 5.6 升级到 8.0 后,发现相同 SQL 的执行时间增长了十几倍的问题逐步展开排查的过程记录下来。
Upgrading Uber’s MySQL Fleet to version 8.0
Learn all about our journey of successfully upgrading our MySQL fleet at Uber from v5.7 to v8.0, enhancing performance and reliability.