news 2026/8/31 16:12:29

Mysql调优

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Mysql调优

Mysql调优

影响处理速度的因素

硬件配置低

网络带宽窄

存储架构不合理

复杂的查询语句

服务运行参数设置不合理

启用慢查询日志

保存耗时较长的日志

vim/etc/my.cnf[mysqld]slow-query-log#启用慢查询long-query-time=0.3#查询超时时间systemctl restart mysqld

统计日志信息

ls/var/lib/mysql/主机名-slow.log mysqldumpslow /var/lib/mysql/主机-slow.log>sql.txt

设置查询缓存

查询的内容如果在查询缓存中有,则从查询缓存中拿取,没有则从硬盘里查询,保存到查询缓存中,在进行拿取。

mysql>show variables like"%query_cache%";#have_query_cache YES 启用缓存查询#query_cache_type YES 允许查找的内容放入查询缓存里#query_cache_size 缓存大小
vim/etc/my.cnf[mysqld]query_cache_size=10485760#10Mquery_cache_type=ON#ON、OFF、DEMAND(按需缓存)systemctl restart mysqld

验证内容是否在查询缓存里查找的

mysql>show status like"%qcache%";#Qcache_hits 0 在缓存里找到的数据#Qcache_inserts 0 在硬盘里找到的数据mysql>show status like"%com_select%";#查询访问总量,内存里找的不会变#查询缓存命中率 = (Qcache_hits / Com_select) * 100% 数字越低越好

创建索引

创建索引

mysql>create index 名称 on 库.表(表头名);

删除索引

mysql>drop index 名称 on 库.表;

测试索引

mysql>explainselect查询命令;

设置索引缓存

索引缓存:划分物理内存空间,单独存放索引信息:表名.MYI (/var/lib/mysql/库/表.MYI)

mysql>show variables like"key_buffer_size";#默认给的缓存大小,默认8M,也是.myi的大小,通过/etc/my.cnf更改大小mysql>show global status like"key_read%";#Key_read_requests 6 索引请求总数#Key_reads 3 磁盘IO总数#Key_reads / Key_read_requests 比例越小越好,修改的size越合理

补充:

查询访问多的表,使用myisam存储引擎

desc 表名 来自:表名.frm (结构)

show index 来自:表名.MYI (索引)

select * 来自:表名.MYD (数据)

Innodb存储引擎:.frm + .idb(索引+数据)

设置缓存表

访问表存放在/var/lib/mysql/库/表.MYD 表.ibd,先打开文件——>查询——>关闭,第二次也是这个动作

缓存表:可以同时打开多表,不用关闭

查看已打开、打开过多少个表

mysql>show global status like"open%tables";#open_tables <= open_table_cache值 并且 Opened_tables值变化不大

查看可以缓存的表,可以同时打开多少张表,不用关闭

mysql>show variables like"table_open_cache";

设置并发连接数

查看并发连接

mysql>show variables like"max_connections";max_connections#允许的最大并发连接数mysql>show status like"Max_used_connections";Max_used_connections#当前最大连接数
Max_used_connections / max_connections *100% ≈85%

设置重用线程

可以重复使用的线程数量,不销毁处理完访问连接的线程,让线程继续在内存里运行着,等待客户端连接

查看重用线程

mysql>show variables like"thread_%_size";thread_cache_size9#查看可以重用的线程

查看当前线程状态

mysql>show global status like"threads_%";Threads_running1#正在活跃的线程Threads_created4#已创建的线程Threads_connected3#当前正在连接的线程Threads_cached2#缓存的线程Threads_connections<=thread_cache_size#合理
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/31 16:12:15

MATLAB图像美化系统开发实战:从摄像头采集到GUI美化

简介&#xff1a;本资源是一个面向图像处理初学者与课程设计者的MATLAB实践项目&#xff0c;聚焦摄像头实时采集、图像文件读写、几何变换及噪声抑制等核心功能&#xff0c;适用于数字图像处理实验、本科毕业设计或科研课题原型开发。压缩包共9个文件&#xff0c;含2个BMP、2个…

作者头像 李华
网站建设 2026/8/31 16:11:53

MATLAB机器人工具箱10.4机械臂仿真与运动学实践指南

这次我们来看一个在机械臂仿真学习里绕不开的工具&#xff1a;MATLAB机器人工具箱&#xff08;Robotics Toolbox&#xff09;10.4。 这个工具箱的知名度在机器人方向其实非常高。它是Peter Corke维护的一套用于机器人学教学和研究的MATLAB工具包&#xff0c;覆盖机械臂运动学、…

作者头像 李华
网站建设 2026/8/31 16:10:57

OpenAI断供Cursor:开发者如何快速切换模型与自建兼容层

这次的事件不是社区里传出来的“小道消息”&#xff0c;而是直接改变 Cursor 用户使用习惯的一次行业级变动&#xff1a;OpenAI 决定终止向 Cursor 提供模型访问&#xff0c;理由指向 Cursor 母公司 Anysphere 被 SpaceX 收购后带来的合规风险。简单说&#xff0c;如果你平时在…

作者头像 李华
网站建设 2026/8/31 16:08:48

15、MTK平台功耗--Wi-Fi/BT/GPS 功耗管理:Wi-Fi 扫描与连接功耗、BT 低功耗模式(BLE)、GPS 定位功耗优化

15.1 Wi-Fi 扫描与连接功耗 Wi-Fi 的功耗大头,其实不在连接上,而在扫描上。你想想看,手机每隔几秒就要把周围所有的信道扫一遍,每个信道都要发 Probe Request、收 Probe Response,这能不费电吗? 15.1.1 扫描策略优化 MTK 的 Wi-Fi 驱动里,扫描参数是可以调的。我个人…

作者头像 李华
网站建设 2026/8/31 16:08:18

读写锁详解

文章目录为什么普通互斥锁不够&#xff1f;读写锁的核心规则读者优先和写者优先读者优先写者优先Linux读写锁接口初始化和销毁加读锁、加写锁和解锁非阻塞尝试简单用例读写锁和互斥锁怎么选&#xff1f;当多个线程访问同一份共享数据时&#xff0c;读操作之间通常不会互相修改数…

作者头像 李华
网站建设 2026/8/31 16:08:10

有智慧的模型聊天会上瘾:本地部署与多轮对话技术拆解

玉伯谈 AI 时有个判断很值得琢磨&#xff1a;有智慧的模型聊天会上瘾。这句话放在技术语境里看&#xff0c;它点出的其实是大语言模型体验的分水岭——不是“能不能答对”&#xff0c;而是“能不能让人一直聊下去”。很多模型能给出标准答案&#xff0c;但只有少数模型能在多轮…

作者头像 李华