我的mysql数据库出现这种怪问题和硬件有关系吗?
我有一个通用的点击统计数的表ClickCount(myisamchk)。结构如下:
CountID mediumint(icon_cool.gif
ItemName char(50)
IdName char(50)
IdValue char(50)
ClickCount mediumint(9)
一、重新启动mysql(service mysql restart)
二、我在phpmyadmin里执行
UPDATE ClickCount SET ClickCount=ClickCount+1 WHERE ItemName='News' AND IdValue='1847';
影响列数: 1 (查询花费 0.0006 秒)
很快吧!
三,可是,我执行第二遍的时候问题出现了,竟然用了近30秒
(查询花费 29.3607 秒)
我重新启动mysql之后,第一遍执行总是很快,但之后就完全不行了。
repair tablename; myisamchk -r tablename.MYI; optimize tablename等等命令全用过了。还是不行。
我的服务器是双志强2.4 2G内存,my.cnf文件如下:
key_buffer = 256M
max_allowed_packet = 2M
table_cache = 256
sort_buffer_size = 2M
read_buffer_size = 2M
myisam_sort_buffer_size = 32M
thread_cache = 16
query_cache_size = 32M
ClickCount表很小,不到1万条记录。
只有这个表的update操作有这种问题,别的表都没有。
请问这是怎么回事呀?会是硬件的问题吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
用EXPLAIN SELECT ClickCount FROM ClickCount WHERE ItemName='News' AND IdValue='1847';看看
哈哈,我找到问题啦。
程序员写的一个页面写的效率不高,而且是多表联合查询的,导致那个表被封锁了。
我把那页面重新写了,调整了一下数据表结构就好了。