
[日常] PHP与Mysql测试kill慢查询并检验PDO的错误模式
发布日期:2021-05-18 07:59:26
浏览次数:21
分类:精选文章
本文共 1183 字,大约阅读时间需要 3 分钟。
MySQL性能优化实践指南
1. PDO 错误模式设置
在使用 PDO 连接数据库时,确保错误模式设置为抛出异常模式。这一设置可以避免使用错误日志,并保持程序的正常运行流程。具体操作如下:
$opts = array( PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION);$pdo = new PDO("mysql:host=localhost;dbname=pan", "root", "xxxx", $opts);$pdo->query('set names utf8');$sth = $pdo->prepare("select sleep(20) from texts where title like '%测试%'");$sth->execute(array("title" => "测试"));$res = $sth->fetchAll(PDO::FETCH_ASSOC);print_r($res);
在处理异常时,确保有专门的异常类来捕捉并处理错误。对于非整型参数等错误,可以避免因未处理而触发致命错误(500错误)。
2. 慢查询优化配置
为了分析和解决慢查询问题,可以采取以下步骤:
开启慢查询日志和文件配置:
slow_query_log = onslow_query_log_file = /usr/local/mysql/data/slow.loglong_query_time = 1
使用监控工具分析慢查询:
SHOW VARIABLES LIKE 'slow_query%';SHOW VARIABLES LIKE 'long_query_time';
pregnancies 处理未完成的查询线程:
SHOW full processlist;KILL id_number;
3. 性能测试与优化建议
在完成上述配置后,建议采用以下方式验证和优化性能:
使用工具测试:
sysbench --Enhance=1 --time=1m --mysql "SELECT sleep(20) FROM texts WHERE title LIKE '%测试%'"
确定优化方向:
长查询日志分析:-FINE/INFO等日志级别来获取更多查询详情。
4. 常见问题与解决方案
- 如果长查询持续存在,可能需要检查索引和锁定(InnoDB设置
innodblocking=0
)。 - 硬连接数过多,文件系统可能存在争夺,建议检查磁盘使用情况和IOPS。
5. 最终注意事项
- 保持数据库日志分配合理,不要使用SSD存储日志文件。
- 定期清理旧日志和错误日志,避免存储占用过大。
- 关注数据库的磁盘空间使用情况,及时扩容或清理临时文件。
通过以上优化措施,可以有效提升MySQL的性能表现,减少慢查询对整体系统的影响。
发表评论
最新留言
路过,博主的博客真漂亮。。
[***.116.15.85]2025年05月17日 04时55分17秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Linux配置-【7】用户、组与权限管理
2023-02-05
Linux配置-【9】文件、目录相关指令
2023-02-05
Linux配置IPv6
2023-02-05
Linux配置IP命令
2023-02-05
Linux配置jdk环境
2023-02-05
Linux里的档案权限入门!!!
2023-02-05
Linux重启 Redis自动启动
2023-02-05
linux问题点滴,给普通用户添加sudo权限
2023-02-05
Linux防火墙-iptables
2023-02-05
linux防火墙iptables简单介绍
2023-02-05
Linux防火墙实现SNAT与DNAT
2023-02-05
Linux防火墙应用实践
2023-02-05
linux防火墙规则
2023-02-05
Linux静态库和共享库【转】
2023-02-05
Linux面试题总结
2023-02-05
Linux音频编程指南
2023-02-05
Linux高手最常使用的五个快捷键,零基础入门到精通,收藏这一篇就够了
2023-02-05
linux高级技巧:heartbeat+lvs(二)
2023-02-05
linux高级数据存储
2023-02-05
Linux高阶知识:Linux 中的隐藏文件
2023-02-05