千家信息网

如何解决mysql存储过程太慢的问题

发表于:2024-09-22 作者:千家信息网编辑
千家信息网最后更新 2024年09月22日,小编给大家分享一下如何解决mysql存储过程太慢的问题,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!mysql存储过程太慢
千家信息网最后更新 2024年09月22日如何解决mysql存储过程太慢的问题

小编给大家分享一下如何解决mysql存储过程太慢的问题,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

mysql存储过程太慢的解决方法:首先打开my.cnf配置文件;然后添加配置【long_query_time=1】;接着通过【tail -f /tmp/logs/mysqld.log】命令监控sql;最后进行针对性的优化即可。

解决方法:

第一步:修改/etc/my.cnf文件,找到[mysqld] 里面加入

#执行的sqllog=/tmp/logs/mysqld.log #记录sql执行超过下面设置时间的sqllog-slow-queries = /tmp/mysqlslowquery.log#执行时间大于等于1秒long_query_time = 1

然后你可以tail -f /tmp/logs/mysqld.log 监控所有执行的sql,同样的方法可以监控mysqlslowquery.log 为执行时间超过long_query_time = 1(秒)的sql语句

比如通过第一步我们找到了某一个mysql 自定义函数执行慢func_getDevice(); 执行了15s,但并不知道这个方法里面到底是那一条sql影响了性能,那么就有了第二步。

第二步:进入mysql命令行,输入

mysql> set profiling=1;mysql> select func_getDevice(1);mysql> show profiles;+----------+------------+-----------------------+| Query_ID | Duration   | Query                 |+----------+------------+-----------------------+|        1 | 0.00250400 | select * from TDevice |+----------+------------+-----------------------+1 row in set (0.00 sec)

这时候你就会看到一个详细的sql执行列表,但默认只记录15条sql,如果方法里面的sql比较多,那么可以通过设置

mysql> set profiling_history_size=20;mysql> show variables like 'profiling%';+------------------------+-------+| Variable_name          | Value |+------------------------+-------+| profiling              | ON    || profiling_history_size | 15    |+------------------------+-------+2 rows in set (0.00 sec)mysql> select func_getDevice(1);mysql> show profiles;

这是时候就可以准确的看到是那一条sql语句影响了性能,比如 Query_ID=1 select * from TDevice 影响了性能;

mysql> show profile for query 1;详细查看执行一条sql的耗时情况+--------------------------------+----------+| Status                         | Duration |+--------------------------------+----------+| (initialization)               | 0.000003 | | checking query cache for query | 0.000042 | | Opening tables                 | 0.00001 | | System lock                    | 0.000004 | | Table lock                     | 0.000025 | | init                           | 0.000009 | | optimizing                     | 0.000003 |

查看表的索引等是否合理,通过针对性的优化以提高效率。

以上是如何解决mysql存储过程太慢的问题的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

方法 过程 存储 性能 时间 影响 监控 问题 内容 命令 文件 篇文章 语句 针对性 配置 不怎么 函数 可以通过 大部分 情况 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 有关网络安全的黑客重大事件 软件开发慢慢学 江西双线服务器租用 网络安全法 高校制度 共建网络安全同享清朗空间 长春学习软件开发的学校 武汉电子商务软件开发 深信服网络安全工程师考试时间 无法连接服务器安全模式 数据库 菜单 支付系统定制软件开发有用吗 河南普欣网络技术有限公司 软件开发模型简答题 网络安全我先行班会记录表 长沙财务软件开发哪家好 那个代理服务器可用 福佳集团软件开发怎么样 服务器启动但是显示器没有显示 网络安全的个人见解 飞鱼网络技术有限公司 数据库原理主要用什么语言 计算机网络技术路由表 动态网络安全全景图 苹果7联通无服务器 正规计算机软件开发学校 手机版我的世界服务器如何做地皮 昆明云服务器收费吗 服务器开机只有一条横杠 赤峰定制软件开发创新服务 数据库怎么查询某架构下的表
0