
【MySQL基础篇】
文章平均质量分 86
MYSQL从入门到放弃
索引底层原理
集群部署
读写分离等常用技术分享
小小工匠
show me the code ,change the world
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
MySQL - 查询性能优化实战:从执行计划到SQL规范
MySQL查询性能优化是提升系统效率的关键。本文系统介绍了MySQL查询执行流程,重点解析了查询优化器的工作机制。通过"执行计划分析三步曲"(EXPLAIN、Profile、Optimizer Trace)定位慢查询问题,并提出索引优化策略,如合理使用ICP、MRR等技术。文章还总结了SQL编写规范,包括避免SELECT *、合理使用索引、优化分页查询等实用技巧,帮助开发者从系统和实践层面提升数据库查询性能。这些方法对构建高并发、大数据量的应用系统具有重要指导意义。原创 2025-09-24 06:30:00 · 1094 阅读 · 0 评论 -
MySQL - 通过案例实战理解InnoDB 三大锁:Record Lock、Gap Lock、Next-Key Lock
MySQL InnoDB锁机制详解:通过电影院选座案例理解Record Lock、Gap Lock和Next-Key Lock的区别与应用场景。文章通过实验演示,在REPEATABLE-READ隔离级别下,三种锁对并发操作的影响:Record Lock仅锁定具体记录,Gap Lock锁定记录间隙防止插入,Next-Key Lock结合两者防止幻读。包含清晰的锁范围图解和实际SQL验证,帮助开发者掌握InnoDB锁机制的核心原理和防幻读实现方式。原创 2025-09-23 06:15:00 · 808 阅读 · 0 评论 -
MySQL - 高性能数据库索引设计:原理与实践(下)
摘要: 本文系统讲解了MySQL高性能索引设计的核心原理与实践。关键点包括: 索引选择依据:通过谓词分析和过滤因子计算(组合谓词更优)确定最佳索引字段; 核心概念:基数、选择率影响索引效率,覆盖索引可避免回表提升性能; 案例分析:通过6种SQL场景对比,展示联合索引的使用边界(如范围查询导致索引中断); 实践验证:提供JDBC代码示例,通过执行计划分析索引使用情况(如key_len和Using index标记)。 最终结论:优化索引需综合字段选择性、查询模式及执行计划验证,从"能用索引"原创 2025-09-22 05:15:00 · 921 阅读 · 0 评论 -
MySQL - 高性能数据库索引设计:原理与实践(上)
数据库索引是提升查询性能的关键技术,通过在存储空间和写入性能之间取得平衡来加速数据检索。索引基于二分查找和哈希表等数据结构,其中B+Tree索引支持范围查询并减少I/O操作,而哈希索引适用于等值查询但存在局限性。本文系统讲解了索引的工作原理、不同类型(如聚簇索引和辅助索引)的特性,并结合实际案例演示了如何优化查询性能。最佳实践包括选择高区分度列、遵循最左前缀原则设计联合索引,以及利用覆盖索引避免回表操作,从而显著提高数据库查询效率。原创 2025-09-21 08:15:00 · 716 阅读 · 1 评论 -
MySQL - 高性能数据库表设计:范式与反范式
高性能数据库表结构设计需平衡范式理论与实际应用需求。基础应遵循三范式(1NF确保原子性、2NF消除部分依赖、3NF避免传递依赖),但特定场景可采用反范式设计以空间换时间。实践案例显示:IP地址用INT替代CHAR(15)可节省73%空间;时间戳存储优化为4字节整数;大表主键应使用BIGINT防溢出。示例代码展示了优化后的IP存储方案实现,通过函数转换确保查询效率。核心原则是:以范式为主,针对高频查询等场景合理引入反范式设计,在数据一致性与查询性能间取得平衡。原创 2025-09-21 06:45:00 · 790 阅读 · 0 评论 -
MySQL - 如何构建完整的MySQL知识体系
《Java开发者必须掌握的MySQL知识体系》摘要: 文章指出63%的企业使用MySQL,但Java开发者常忽视其深度优化。核心问题包括:ORM框架生成的SQL效率低下、索引不当导致全表扫描、事务处理不当引发并发问题。通过案例展示了未建索引查询如何导致百万级数据性能骤降,对比了错误与优化后的代码实现。文章破除三大误区:仅会CRUD不足、非DBA专属、过度依赖缓存。提出四维知识体系:InnoDB机制、库表设计、查询优化(如分页技巧)、高可用架构。最后以订单查询优化为例,演示从监控分析到索引重构的全流程,强调J原创 2025-09-18 06:15:00 · 889 阅读 · 0 评论 -
每日一博 - 闲聊SQL Query Execution Order
在这个阶段,MySQL会分析查询的各种执行计划,并选择最优的执行计划。总的来说,这些子句在查询执行过程中的不同阶段起作用,它们的正确使用可以确保查询返回正确的结果并提高性能。然而,不正确的使用或复杂的查询可能导致性能下降,因此在编写查询时需要谨慎考虑这些子句的使用。需要注意的是,查询的执行顺序可能会因查询的复杂性、索引的存在与否、表的大小以及其他因素而有所不同。执行的顺序和方式取决于查询的具体要求和执行计划。是SQL查询中的关键子句,它们在查询的执行过程中起着不同的作用,可以影响查询的结果集和性能。原创 2023-09-12 21:45:00 · 10463 阅读 · 0 评论 -
MySQL - binlog同步过程
MySQL 的 binlog 同步原理是主从复制 (Master-Slave Replication),主库 (Master) 将所有数据更改操作记录保存在 binlog 中,并通过网络发送给一个或多个从库 (Slave),从库再将主库的 binlog 应用到自己的数据库中,从而实现数据的同步。binlog 是 MySQL 中的一个重要组件,能够记录下所有对数据库的修改操作,包括添加、删除和修改数据,以及更改数据库结构(例如:创建、删除表)等操作。原创 2023-09-09 07:45:00 · 12004 阅读 · 0 评论 -
MySQL - mysqldump多种方式实现数据迁移
一行命令mysqldump -h172.168.15.222 -P3406 -uroot -p123456 -C --databases artisan |mysql -h172.168.15.221 -P3406 -uroot -p123456 zfdc-C 压缩Shell 导入导出【导出】#!/bin/bash# 以下配置信息请根据现场实际情况修改mysql_user="root" #MySQL备份用户mysql_password="123456" #MySQL备份用户的密码.原创 2021-03-11 22:26:23 · 20644 阅读 · 1 评论 -
MySQL-主从复制监控
文章目录官方文档监控主从复制链路的状态监控主从复制延迟监控主从复制数据一致性 pt-table-checksum官方文档https://dev.mysql.com/doc/如果英文不好的话,可以参考 searchdoc 翻译的中文版本http://www.searchdoc.cn/rdbms/mysql/dev.mysql.com/doc/refman/5.7/en/index.c...原创 2020-02-03 23:51:12 · 18299 阅读 · 0 评论 -
MySQL-数据库监控初探
文章目录官方文档监控啥数据库可用性监控如何确认数据库是否可以通过网络连接?如何确认数据库是否可读写如何监控数据库的连接数 max_connections | Threads_connected数据库性能如何计算QPS和TPSQPSTPS并发数量监控 Threads_runningInnodb的阻塞监控官方文档https://dev.mysql.com/doc/如果英文不好的话,可以参...原创 2020-02-03 23:27:38 · 17980 阅读 · 0 评论 -
MySQL-分库分表初探
文章目录官方文档主从复制 解决不了 主节点DB写的的压力常见的分库分表的方式分库分表DB分片前的准备如何选择分区键 ,尽量避免跨分片查询如何存储无需分片的表如何在节点上部署分片官方文档https://dev.mysql.com/doc/如果英文不好的话,可以参考 searchdoc 翻译的中文版本http://www.searchdoc.cn/rdbms/mysql/dev.mys...原创 2020-02-03 19:57:56 · 17709 阅读 · 0 评论 -
MySQL-count(*) 和 not in 的查询优化
文章目录官方文档优化的原因not in 的优化使用汇总表优化count(*)查询官方文档https://dev.mysql.com/doc/如果英文不好的话,可以参考 searchdoc 翻译的中文版本http://www.searchdoc.cn/rdbms/mysql/dev.mysql.com/doc/refman/5.7/en/index.com.coder114.cn.h...原创 2020-02-03 15:12:17 · 19561 阅读 · 0 评论 -
MySQL-在线处理大表数据 & 在线修改大表的表结构
文章目录官方文档概述示例大表数据的分批处理修改大表的表结构方案一 : 从表修改,主从切换方案二: pt-online-schema-change官方文档https://dev.mysql.com/doc/如果英文不好的话,可以参考 searchdoc 翻译的中文版本http://www.searchdoc.cn/rdbms/mysql/dev.mysql.com/doc/re...原创 2020-02-03 11:33:59 · 20620 阅读 · 0 评论 -
MySQL- SQL执行计划 & 统计SQL执行每阶段的耗时
文章目录官方文档某些SQL查询为什么慢MySQL处理SQL请求的过程查询缓存对SQL性能的影响SQL预处理及生成执行计划造成MySQL生成错误的执行计划的原因官方文档https://dev.mysql.com/doc/如果英文不好的话,可以参考 searchdoc 翻译的中文版本http://www.searchdoc.cn/rdbms/mysql/dev.mysql.com/do...原创 2020-02-02 23:07:12 · 21781 阅读 · 0 评论 -
MySQL-获取有性能问题SQL的方法_慢查询 & 实时获取
文章目录官方文档使用慢查询获取慢查询的相关参数slow_query_log 是否开启了慢查询slow_query_log_file 指定慢查询日志的存储路径及文件long_query_time 指定记录慢查询日志SQL执行时间的阈值log_queries_not_using_indexes 是否记录未使用索引的SQL官方文档https://dev.mysql.com/doc/如果英文不...原创 2020-02-02 19:56:51 · 18298 阅读 · 0 评论 -
MySQL-索引优化篇(4)_索引的维护
文章目录官方文档官方文档https://dev.mysql.com/doc/如果英文不好的话,可以参考 searchdoc 翻译的中文版本http://www.searchdoc.cn/rdbms/mysql/dev.mysql.com/doc/refman/5.7/en/index.com.coder114.cn.html...原创 2020-02-02 16:44:54 · 18597 阅读 · 0 评论 -
MySQL-索引优化篇(3)_利用索引优化锁
文章目录官方文档官方文档https://dev.mysql.com/doc/如果英文不好的话,可以参考 searchdoc 翻译的中文版本http://www.searchdoc.cn/rdbms/mysql/dev.mysql.com/doc/refman/5.7/en/index.com.coder114.cn.html...原创 2020-02-02 15:30:00 · 18209 阅读 · 0 评论 -
MySQL-索引优化篇(2)_使用索引扫描来优化排序
文章目录官方文档官方文档https://dev.mysql.com/doc/如果英文不好的话,可以参考 searchdoc 翻译的中文版本http://www.searchdoc.cn/rdbms/mysql/dev.mysql.com/doc/refman/5.7/en/index.com.coder114.cn.html...原创 2020-02-02 11:26:24 · 17868 阅读 · 0 评论 -
MySQL-索引优化篇(1)_安装演示库 & [前缀索引、联合索引、覆盖索引] & explain参数
文章目录官方文档安装演示数据库sakila官方文档https://dev.mysql.com/doc/如果英文不好的话,可以参考 searchdoc 翻译的中文版本http://www.searchdoc.cn/rdbms/mysql/dev.mysql.com/doc/refman/5.7/en/index.com.coder114.cn.html安装演示数据库sakila...原创 2020-02-01 22:45:29 · 17899 阅读 · 0 评论 -
MySQL-Btree索引和Hash索引初探
文章目录官方文档官方文档https://dev.mysql.com/doc/如果英文不好的话,可以参考 searchdoc 翻译的中文版本http://www.searchdoc.cn/rdbms/mysql/dev.mysql.com/doc/refman/5.7/en/index.com.coder114.cn.html...原创 2020-02-01 17:44:32 · 17828 阅读 · 0 评论 -
MySQL-通过MaxScale实现读写分离初探
文章目录官方文档官方文档https://dev.mysql.com/doc/如果英文不好的话,可以参考 searchdoc 翻译的中文版本http://www.searchdoc.cn/rdbms/mysql/dev.mysql.com/doc/refman/5.7/en/index.com.coder114.cn.html...原创 2020-02-01 15:31:32 · 20079 阅读 · 1 评论 -
MySQL-高可用架构探索
文章目录官方文档前置学习官方文档https://dev.mysql.com/doc/如果英文不好的话,可以参考 searchdoc 翻译的中文版本http://www.searchdoc.cn/rdbms/mysql/dev.mysql.com/doc/refman/5.7/en/index.com.coder114.cn.html前置学习要掌握高可用架构,必须先了解主从架...原创 2020-02-01 10:20:14 · 20244 阅读 · 0 评论 -
MySQL-binlog格式对主从复制的影响&MySQL主从复制的过程
文章目录官方文档主从复制的分类基于SQL语句的复制-SBR优点缺点基于行的复制 RBR优点缺点MySQL主从复制的过程官方文档https://dev.mysql.com/doc/如果英文不好的话,可以参考 searchdoc 翻译的中文版本http://www.searchdoc.cn/rdbms/mysql/dev.mysql.com/doc/refman/5.7/en/inde...原创 2020-01-31 22:02:26 · 18338 阅读 · 0 评论 -
MySQL-日志&二进制日志binlog初探
文章目录MySQL日志分类服务层日志存储引擎层日志MySQL日志分类服务层日志二进制日志慢查询日志通用日志…存储引擎层日志以Innodb存储引擎来讲,主要由 Redo log 和 Undo log , 为了支持事务。...原创 2020-01-31 10:32:17 · 20053 阅读 · 0 评论 -
MySQL-DB参数、内存、I/O、安全等相关参数设置
文章目录服务器参数介绍MySQL获取信息配置领MySQL配置参数的作用域内存配置相关参数IO相关配置参数安全相关配置参数其它常用配置参数服务器参数介绍MySQL获取信息配置领1) 命令行mysqld_safe --datadir=/xxx/xxxx2) 配置文件持久化的配置都要写到配置文件中.MySQL读取的配置文件可以通过如下命令来查看[root@artisan mysql...原创 2020-01-30 17:44:10 · 20541 阅读 · 2 评论 -
MySQL-体系结构以及常用存储引擎MyISAM和InnoDB初探
文章目录MySQL体系结构常用搜索引擎之MyISAM常用搜索引擎之InnodbMySQL体系结构常用搜索引擎之MyISAM常用搜索引擎之Innodb原创 2020-01-30 10:09:02 · 18044 阅读 · 0 评论 -
MySQL-性能优化_影响MySQL性能的因素分析及解决方案
文章目录影响性能的几个因素影响性能的几个因素硬件资源(CPU 、内存、磁盘等)操作系统的区别MySQL的存储引擎的选择MyISAM: 不支持事务,表级锁InnoDB: 事务级存储引擎,完美支持行级锁,事务ACID特性。但 比不是说 MyISAM比InnoDB差,看使用场景数据库参数设置数据库结构设计和SQL语句 ,毫无疑问 这个是最最重要的因素...原创 2020-01-29 14:50:11 · 19412 阅读 · 0 评论 -
MySQL-性能优化_大表和大事务的常用处理方案
文章目录影响MySQL性能的几大因素大表带来的风险大事务带来的风险影响MySQL性能的几大因素通常来说 ,有以下几点慢SQL(重点) 、 主机的硬件资源(CPU、内存、磁盘I/O等)、网卡流量等等超高的QPS和 TPSQPS(Queries Per Second 每秒处理的查询量) : 假设处理一个SQL 需要 10ms , 1s 最多也就处理100个,那么QPS < =...原创 2020-01-29 01:18:17 · 19744 阅读 · 2 评论 -
MySQL-主从架构的搭建
文章目录前置工作前置工作OS: CentOS 7DB:MySQL5.7131和132已经按照MySQL-CentOS7通过YUM安装MySQL5.7.29完成了MYSQL的安装,并成功启动。原创 2020-01-27 23:38:05 · 17687 阅读 · 0 评论 -
MySQL-CentOS7通过YUM安装MySQL5.7.29
文章目录Step1.确认操作系统的版本Step2. 检查并写在MariaDBStep3. 下载RPMStep1.确认操作系统的版本[root@artisan ~]# cat /etc/redhat-release CentOS Linux release 7.7.1908 (Core)[root@artisan ~]# CentOS7 及以上版本 默认安装了 MariaDB ,...原创 2020-01-27 13:45:51 · 24478 阅读 · 8 评论 -
MySQL-主从架构探索
文章目录为什么要用主从方案常见的主从方案一主一从 M-S一主多从 M-S-S-S多主一从 M-M-M-S主从复制的原理为什么要用主从方案可以从以下的几个方面来考虑如果主服务器出现问题,可以快速切换到从服务器提供的服务 。 (如果做了读写分离的话,主库挂了,起码还能提供查询服务。 如果又做了高可用的话,从服务可以提升为主节点。 )可以在从服务器上执行查询操作,降低主服务器的访问压力可以...原创 2020-01-26 15:23:45 · 18064 阅读 · 0 评论