MySQL优化
mysqlbug 查看编译参数
mysqlcheck 可以检查和修复MyISAM表,并且它还可以优化和分析表
mysql_config 编译mysql客户端程序
mysql_convert_table_format 修改表引擎
mysqld_multi 用来启动和停止任何运行的不同端口和套接字的mysqld进程
mysql_find_rows 输出所有匹配正则表达式的SQL查询。
mysql_fix_extensions 将 MYISAM 或者(ISAM)表文件转换为他们的规范格式,它会寻找和这些后缀匹配的文件
.frm
, .myd
, .myi
, .isd
, and .ism
并且分别重命名他们为 .frm
, .MYD
, .MYI
, .ISD
, and .ISM。 将文件从具有不区分大小写的文件名(如Windows)的系统传输到具有区分大小写的文件名的系统时,这可能很有用。
mysqlhotcopy 使用lock tables、flush tables和cp或scp来快速备份数据库.它是备份数据库或单个表最快的途径,完全属于物理备份,但只能用于备份MyISAM存储引擎和运行在数据库目录所在的机器上.
与mysqldump备份不同,mysqldump属于逻辑备份,备份时是执行的sql语句。
mysql_install_db 数据库的初始化 ,当数据库出现故障或者新增一个实例的时候需要进行实例化。
mysqlslap mysql 自带的压力测试工具
查询语句将内容输出到文件中
select * from user into outfile '/tmp/user.xls'; 文件不存在的时候将会自动创建。
查看mysql 提供的引擎 show engines;
查看 mysql现在使用的引擎 show variables like "%storage_engine%";
查看某个表(user)使用了什么引擎 show create table user; ENGINE 后面的参数表示的就是该表当前使用的引擎。
清空整个表的内容 truncate tablename
导出所有用户权限
yum install perl-DBD-MySQL
wget percona.com/get/pt-show-grants
perl pt-show-grants --user=root --ask-pass --flush > /root/grants.sql
mysql -uroot < /root/grants.sql 将导出的所有用户权限导入到新建的数据库中。
配置中的一些参数
innodb_buffer_pool_size = 128M 缓冲池的大小,缓冲池是数据和索引缓存的地方, 如果单纯的是数据库服务器,设置为内存大小的75%。
innodb_buffer_pool_instances = 控制缓冲池的个数
innodb_log_buffer_size 数据库一般每秒都会把数据写入磁盘 这个参数不用太大
innodb_flush_log_at_trx_commit 对 innodb 的I/O 效率影响很大,默认值为1 ,可以取 0 1 2 三个值,
一般建议设置为2 , 如果数据安全性要求比较高则使用默认值 1
innodb_read_io_threads
innodb_write_io_threads innodb读写的IO进程数,默认为 4
innodb_file_per_table 控制 innodb每一个表使用独立的表空间,默认为OFF, 也就是所有表都会建立在 共享表空间中。
innodb_stats_on_metadata mysql 在什么情况下会刷新innodb表的统计信息。
max_connections 连接最大数,当数据库报错 " too many connections" 时,就是因为此值设置的太小,常见是因为应用程序没有正常的关闭连接。
此值默认为 151 。
一个数据库配置向导
https://tools.percona.com/wizard
设置慢查询
log_slow_queries=/var/log/sql_slow.log
long_query_time=5 (单位是 秒 s)
分析慢查询日志的工具 pt-query-digest
wget percona.com/get/pt-query-digest
./pt-query-digest logname
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· Vue3状态管理终极指南:Pinia保姆级教程