php– 带有insert的大表的mysql性能问题

php– 带有insert的大表的mysql性能问题,第1张

概述我们有一个专用服务器,内存为8GB,PHP5.3为MySQL 5.1最多有大约500个并发连接,每个连接使用用户数据对较小的表执行1-2次SELECT查询,然后在大表事务中执行INSERT.选择查询不需要太多,我们在每个查询之间添加监视以查看每个查询的响应时间,并且从来没有问题.我们在代码中添加了跟踪功能,有时会导致一些简单的INSERT查询需要14-15秒

我们有一个专用服务器,内存为8GB,PHP5.3为MysqL 5.1

最多有大约500个并发连接,每个连接使用用户数据对较小的表执行1-2次SELECT查询,然后在大表事务中执行INSERT.选择查询不需要太多,我们在每个查询之间添加监视以查看每个查询的响应时间,并且从来没有问题.

我们在代码中添加了跟踪功能,有时会导致一些简单的INSERT查询需要14-15秒.下面列出的此查询有时需要14秒,有时为6秒,有时为0.2秒或更短.可能是什么问题?

PHP代码有时会返回这些巨大的延迟:

$start = microtime(true);echo '&timestampTS_02='.(microtime(true) - $startT);MysqLi_query($GLOBALS['con'],"INSERT INTO `transactions` (`ID`,`data`) VALUES('ID','some_data')") or dIE(MysqLi_error($GLOBALS['con']));echo '&timestampTS_03='.(microtime(true) - $startT);

到目前为止,交易表有大约200万个条目.

CREATE table IF NOT EXISTS `transactions` (  `ID` int(11) NOT NulL,`data` varchar(1000) NOT NulL,PRIMARY KEY (`ID`)) ENGINE=MyISAM  DEFAulT CHARSET=latin1 auto_INCREMENT=1;
最佳答案您的表可能会被锁定以用于其他进程.这可能是硬件问题(慢速或终身硬盘驱动器),软件或推测(共享系统中的慢速服务器).

您可以通过show processList查看锁定插入的内容

总结

以上是内存溢出为你收集整理的php – 带有insert的大表的mysql性能问题全部内容,希望文章能够帮你解决php – 带有insert的大表的mysql性能问题所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1166652.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-01
下一篇 2022-06-01

发表评论

登录后才能评论

评论列表(0条)

保存