MySQL
文章平均质量分 79
d3y1
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
MySQL-17性能监控与调优
MySQL性能监控与调优是数据库管理的核心能力。本文系统性地介绍了从操作系统层到MySQL层的全栈监控体系,包括CPU、内存、IO等关键指标,并提供了实用的监控脚本和SQL查询模板。通过资源指标、数据库指标、查询指标和业务指标的多维度监控,结合Prometheus、Grafana等工具,可构建完整的性能分析体系。文章还提供了详细的系统性能分析脚本和MySQL核心性能指标查询,帮助DBA快速定位数据库性能瓶颈,实现高效调优。原创 2025-10-08 10:31:52 · 828 阅读 · 0 评论 -
MySQL-16备份与恢复机制
MySQL提供了完善的备份恢复机制,包括逻辑备份(mysqldump/mysqlpump)和物理备份(XtraBackup)两种主要方式。逻辑备份生成SQL语句,支持条件备份和并行处理;物理备份直接复制数据文件,支持增量备份和流式传输。两种方式各有优势,逻辑备份灵活但恢复慢,物理备份高效但占用空间大。实际应用中通常结合使用,并配合二进制日志实现点时间恢复(PITR),以构建完整的数据保护方案。原创 2025-10-08 10:29:47 · 914 阅读 · 0 评论 -
MySQL-15安全机制
MySQL提供了全面的安全机制,包括身份认证、权限管理和数据加密等。其安全架构分为网络安全层、身份认证层、权限管理层和数据安全层,通过SSL/TLS加密、用户账户管理、权限系统和审计日志等实现。认证插件系统支持多种验证方式,权限管理采用层次化结构,从全局到列级别控制访问权限。本文深入分析了MySQL的安全实现机制,包括认证过程源码和最佳实践配置。原创 2025-10-08 10:27:50 · 959 阅读 · 0 评论 -
MySQL-14部署架构及高可用机制
MySQL高可用架构摘要 MySQL提供多种高可用方案确保数据库持续服务。主要包括主从架构、主主架构、集群架构和组复制等模式。传统主从架构通过代理层(如HAProxy)实现读写分离,配合监控系统(Prometheus)实现故障检测和手动切换。MHA方案提供自动故障转移能力,通过Manager节点监控集群并管理虚拟IP切换。InnoDB Cluster整合组复制和MySQL Router,提供完整的高可用解决方案。关键配置包括半同步复制、并行复制、性能优化参数等,同时需结合SSH免密登录、VIP管理和完善监控原创 2025-10-08 10:26:49 · 653 阅读 · 0 评论 -
MySQL-13数据同步机制
MySQL数据同步机制包括主从复制、组复制等多种模式。主从复制基于Binlog实现,包含Master和Slave两个角色,通过IO线程和SQL线程协作完成数据同步。Binlog有三种格式(ROW/STATEMENT/MIXED),记录详细的事件信息。从源码层面看,Binlog事件包含头、数据和尾部结构,通过特定函数写入缓存。异步复制是MySQL最基本的数据同步方式,Master执行事务后写入Binlog,Slave异步拉取和应用这些变更。原创 2025-10-08 10:22:53 · 885 阅读 · 0 评论 -
MySQL-12分库分表机制
MySQL分库分表是应对大数据量和高并发的核心方案,主要包括垂直分片和水平分片两种方式。垂直分片按业务模块或字段拆分到不同库表,如将用户、订单等业务分离到独立数据库。水平分片则通过范围或哈希算法将数据分布到多个分片,如按用户ID范围或哈希值分库分表。两种方式可结合使用,有效解决单库单表的性能瓶颈问题,提高系统扩展性和可用性。实际应用中需要根据业务特点选择合适的分片策略。原创 2025-10-08 10:07:25 · 1034 阅读 · 0 评论 -
MySQL-11MVCC一致性视图案例分析
MVCC一致性视图案例分析摘要 MVCC(多版本并发控制)是MySQL实现高并发事务处理的核心机制。本文通过实际案例分析了MVCC在不同场景下的行为表现和一致性保证。 案例涵盖基础可见性、不同隔离级别和并发更新等场景。在基础案例中,事务T1创建Read View后,即使T2更新并提交数据,T1仍能看到一致的旧版本数据。隔离级别测试显示:读未提交会看到未提交数据,读已提交每次查询创建新Read View,而可重复读(MySQL默认)保持事务内一致性视图。 分析表明,MVCC通过版本链、Read View和Un原创 2025-10-08 09:47:18 · 744 阅读 · 0 评论 -
MySQL-10MVCC原理剖析
MVCC(多版本并发控制)是数据库实现高并发的核心机制,通过维护数据行的多个版本实现非阻塞读操作。InnoDB存储引擎通过隐藏列(事务ID、回滚指针)、Undo日志和Read View实现MVCC。版本链结构记录数据修改历史,Read View定义事务可见性范围,依据事务ID比较规则判断数据版本是否可见。MVCC避免了读-写冲突,显著提升并发性能,同时保证事务隔离性。实现上依赖行记录隐藏列管理版本,通过垃圾回收机制清理过期版本,为现代数据库系统提供高效并发控制解决方案。原创 2025-10-08 09:44:26 · 573 阅读 · 0 评论 -
MySQL-09锁及算法源码
MySQL锁机制及源码分析摘要:MySQL提供多层次的锁机制保证数据一致性和并发性,包括服务器层的表锁、元数据锁和存储引擎层的行锁、间隙锁等。表锁是MyISAM引擎的基础锁机制,通过锁类型定义和兼容性检查实现并发控制。源码分析展示了表锁结构定义、锁类型枚举和获取函数实现。元数据锁(MDL)保护数据库对象元数据,具有多种锁类型和兼容性检查机制。锁机制通过严格的并发控制和冲突解决确保数据操作的正确性。原创 2025-10-07 13:59:31 · 855 阅读 · 0 评论 -
MySQL-08事务
MySQL事务机制详解摘要: MySQL事务通过ACID特性确保数据操作可靠性。ACID包括原子性(事务操作全完成或全不完成)、一致性(事务前后数据状态一致)、隔离性(并发事务互不干扰)和持久性(提交后永久有效)。MySQL支持四种隔离级别(读未提交、读已提交、可重复读和串行化),不同级别解决脏读、不可重复读和幻读问题。通过UNDO/REDO日志实现原子性和持久性,MVCC机制提升并发性能。开发者应根据业务需求选择合适隔离级别,并合理设计事务边界以保证数据一致性。原创 2025-10-07 13:58:42 · 792 阅读 · 0 评论 -
MySQL-07单路排序原理与双路排序原理
MySQL单路与双路排序原理 MySQL处理ORDER BY查询时,根据数据量和内存情况采用两种排序算法:单路排序和双路排序。 单路排序: 一次性读取所有列数据到排序缓冲区 内存中完成排序后直接返回结果 适用于数据量小、内存充足的场景 内存消耗大但CPU效率高 双路排序: 先读取排序键和行指针到缓冲区 排序后根据行指针回表获取完整数据 适用于大数据量或内存不足的情况 内存消耗小但增加了IO开销 选择依据主要取决于数据量大小、可用内存和行字段大小。原创 2025-10-07 13:58:00 · 640 阅读 · 0 评论 -
MySQL-06SQL优化的常用原则及案例分析
SQL优化是提升数据库性能的关键。本文系统介绍了SQL优化的核心原则:最小化数据访问、有效使用索引、避免排序操作。通过实际案例对比了低效SQL与优化后的版本,包括查询重写(子查询转JOIN、EXISTS替代IN、UNION优化)、JOIN类型选择(嵌套循环、哈希、合并连接)等技巧。优化后的SQL能显著减少数据扫描量、利用索引加速查询、降低排序开销,从而提升整体性能。遵循这些原则可帮助开发者编写高效SQL语句,优化数据库查询效率。原创 2025-10-07 13:57:07 · 1019 阅读 · 0 评论 -
MySQL-05Profile工具与Trace工具
MySQL性能分析工具摘要 MySQL提供了多种性能分析工具,主要包括Profile工具和Trace工具两大类。Profile工具如SHOW PROFILE可分析查询各阶段耗时(如Opening tables、Sending data等),通过SET profiling=1启用。Performance Schema是更全面的监控系统,包含检测点(Instruments)、消费者(Consumers)和事件表(Events)等组件,可通过SQL配置启用特定监控项。Trace工具则用于跟踪优化器决策和查询执行路原创 2025-10-07 13:56:08 · 999 阅读 · 0 评论 -
MySQL-04索引及算法源码及选择
MySQL索引算法深度解析:本文系统介绍了MySQL索引的核心算法实现,重点剖析了B+树和哈希索引的结构原理。B+树部分通过源码级解析展示了查找、插入和分裂算法的实现细节,包含完整的代码片段和流程图解;哈希索引部分则详细说明了其桶数组结构和冲突处理方法。文章采用Mermaid图表直观呈现了索引分类、B+树层级结构和操作流程,适合数据库开发者和性能优化工程师深入理解MySQL索引底层机制。原创 2025-10-07 13:55:14 · 917 阅读 · 0 评论 -
MySQL-03数据存储结构
MySQL数据存储采用分层结构:逻辑层包含数据库、表、行等对象,物理层由表空间、段、区、页组成。InnoDB存储引擎使用16KB页作为基本单位,支持多种行格式(COMPACT、DYNAMIC等)。表空间分为系统表空间和独立表空间,其中系统表空间存储数据字典和撤销日志。数据页内部包含文件头、用户记录、页目录等结构,通过链表组织记录。不同行格式采用变长字段列表和NULL位图优化存储空间,记录头信息维护记录的物理顺序和逻辑关系。原创 2025-10-07 13:53:49 · 912 阅读 · 0 评论 -
MySQL-02存储引擎
MySQL存储引擎是数据库架构的核心组件,不同引擎提供各自的性能特点和适用场景。InnoDB是默认事务型引擎,支持行锁、外键和崩溃恢复;MyISAM适合读密集型应用,但不支持事务;Memory引擎将数据完全存储在内存中,访问极快但重启后数据丢失。其他引擎如CSV、Archive等满足特定需求。关键特性对比包括事务支持、锁级别、索引类型等。InnoDB采用缓冲池、重做日志等机制实现ACID特性,MyISAM通过分离数据/索引文件优化查询性能。选择存储引擎需权衡事务需求、并发性能和数据持久性要求。原创 2025-10-07 13:52:54 · 951 阅读 · 0 评论 -
MySQL-01存储架构
MySQL采用分层存储架构,包括连接层、服务层、存储引擎层和文件系统层。连接层处理客户端连接和认证;服务层包含SQL解析器、查询优化器和缓存机制;存储引擎层支持多种引擎如InnoDB、MyISAM等,各有特点。数据流分为查询和写入两种流程,通过缓冲池和日志机制优化性能。架构采用分层优化策略,从应用到硬件层面均有优化空间,并内置多种监控组件用于性能诊断。原创 2025-10-07 13:52:02 · 856 阅读 · 0 评论 -
MySQL: Skill: Excel数据导入到MySQL表中
MySQL: Excel数据导入到MySQL表中使用Navicat for MySQL 或者 Navicat premium 121. 目标表2. 源数据3. 点击数据库Tables4. 选择数据源格式为Excel5. 选择Excel数据源所在Sheet6. 输入Excel中数据源字段名所在行数和需导入数据起始行数注意: Excel中字段名 应与 MySQL表中字段名 ...原创 2019-02-20 09:16:56 · 389 阅读 · 0 评论 -
MySQL: Skill: 查看root的权限
MySQL: 查看root的权限mysql> show grants for root;+-------------------------------------------+| Grants for root@% |+-------------------------------------------+| GRANT ALL P...原创 2019-02-19 14:33:19 · 522 阅读 · 0 评论 -
MySQL: Skill: Add all privileges for user abc on database basic_data
MySQL: Add all privileges for user abc on database basic_dataSHOW GRANTS FOR abc;//resultsGRANT USAGE ON *.* TO 'abc'@'%' IDENTIFIED BY PASSWORD '*38E573FEE0457F38F79B14E4E5381EAA895B5FC1'GRANT SE...原创 2019-02-19 14:29:04 · 274 阅读 · 0 评论 -
MySQL: Problem: 远程连接2003-can't connect to MYSQL server on ''(10060)
ProblemMySQL: 远程连接2003-can’t connect to MYSQL server on ‘’(10060)Solution1. 远程服务器上没有打开3306端口 #/sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT #/etc/rc.d/init.d/iptables save # service ipt...原创 2019-02-19 12:46:30 · 666 阅读 · 0 评论 -
MySQL: Fundamental control commands
Start MySQL in Ubuntumysql -u root -pEnter password:(Enter your password here!)Commandsmysql> show databases;Database:bookshop, mysql, test...mysql> use bookshop;Database changedmysql> show tables原创 2015-05-31 11:26:47 · 615 阅读 · 0 评论 -
MySQL: Change root password
mysql> use mysql;mysql> UPDATE user SET Password=PASSWORD('Your new password!') where USER=’root’; mysql> FLUSH PRIVILEGES; mysql> quit原创 2015-05-31 11:28:26 · 579 阅读 · 0 评论 -
MySQL: ERROR 1045 (28000) when GRANT
Description# mysql -uroot -p123456mysql> GRANT ALL PRIVILEGES ON *.* TO 'xyzuser'@'localhost' IDENTIFIED BY 'xyzuser' WITH GRANT OPTION;ERROR 1045 (28000): Access denied for user 'root'@'localhost'原创 2015-05-26 07:37:06 · 625 阅读 · 0 评论 -
MySQL: Change root password in Mac
Step 1.$ sudo /usr/local/mysql/bin/mysqld_safe –user=root & //start MySQL(Also, can start MySQL in System Preferences)Step 2.$ sudo /usr/local/mysql/bin/mysqladmin -uroot password yourpassword //set原创 2016-01-17 20:07:56 · 735 阅读 · 0 评论 -
Command: mysql5.7 start and stop in win10
mysql5.7 start and stop in win10C:\WINDOWS\system32>net start mysql57MySQL57 服务正在启动 .MySQL57 服务已经启动成功。C:\WINDOWS\system32>net stop mysql57MySQL57 服务正在停止.MySQL57 服务已成功停止。...原创 2018-10-27 14:39:00 · 225 阅读 · 0 评论 -
MySQL: CentOS6.8: ERROR 1044 (42000)
MySQL: ERROR 1044 (42000)现象mysql> use mysql;ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'mysql'如果使用“mysql -uroot -p”登陆会报错,即使密码正确也不能登录,而且发现,直接用“mysql -uroot”不输入密码也可以登...原创 2018-11-11 17:58:41 · 390 阅读 · 0 评论 -
MySQL: 忘记root密码: skip-grant-tables
MySQL 忘记root密码修改MySQL的登录设置# vi /etc/my.cnf 在[mysqld]段后附加一句:skip-grant-tables如:[mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock skip-grant-tables 重启MySQL登录并修改MySQL的root密码# ...原创 2018-11-11 18:07:17 · 275 阅读 · 0 评论 -
MySQL: 设置表名不区分大小写
MySQL: 设置表名不区分大小写vi修改/etc/my.cnf# vi /etc/my.cnf 在[mysqld]段后附加一句:lower_case_table_names=1如:[mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock lower_case_table_names=1重启MySQL...原创 2018-11-11 18:16:01 · 245 阅读 · 0 评论 -
MySQL: 数据库拒绝访问[远程连接]
MySQL: 数据库拒绝访问[远程连接]登录MySQL$ /usr/local/mysql/bin/mysql -u root -pmysql> user mysql;mysql> select host from user;mysql> update user set host ='%' where user ='root';mysql> exit;重...原创 2018-11-11 18:31:46 · 1090 阅读 · 0 评论 -
MySQL: 普通用户查看存储过程权限问题
MySQL: 普通用户查看存储过程权限问题SHOW GRANTS FOR cpcampus;#关键GRANT SELECT ON `mysql`.`proc` TO 'cpcampus'@'%';SHOW GRANTS FOR cpcampus;原创 2018-11-11 18:35:43 · 2163 阅读 · 0 评论 -
Problem: MySQL: -bash: mysql: command not found
ProblemProblem: MySQL: -bash: mysql: command not foundOn CentOS, MySQL works fine, but can not use “mysql” command in terminal, and says “-bash: mysql: command not found”.Solution# cd /usr/local/...原创 2018-11-15 22:54:51 · 218 阅读 · 0 评论 -
MySQL: 查看root用户的权限
MySQL: 查看root用户的权限mysql> show grants for root;+-------------------------------------------+| Grants for root@% |+-------------------------------------------+| GRANT ALL...原创 2018-12-15 22:40:44 · 6049 阅读 · 0 评论 -
MySQL: 四舍五入
MySQL四舍五入ROUND 函数原创 2019-02-03 10:58:56 · 500 阅读 · 1 评论 -
MyBatis: Skill: 获取数据库自增id
MyBatis 获取数据库自增idWay 1insert标签中加上useGeneratedKeys=“true” keyProperty=“id”会将id组装到返回对象中而不是作为返回值<insert id="insertSelective" parameterType="com.lcworld.jiunixing.model.User" useGeneratedKeys="tr...原创 2019-02-18 12:56:25 · 386 阅读 · 0 评论 -
MySQL: Problem: Err 1153 - Got a packet bigger than max_allowed_packet bytes
ProblemMySQL: [Err] 1153 - Got a packet bigger than ‘max_allowed_packet’ bytes [Err] /*Solutionmysql> show VARIABLES like '%max_allowed_packet%';+--------------------------+------------+| Va...原创 2019-02-19 08:42:02 · 1106 阅读 · 0 评论
分享