我正在使用MySQL来管理我的PHP应用程序的会话数据。测试应用程序时,通常非常快速且响应迅速。然而,看似随机的响应会在几秒钟后最终完成之前停顿。我已经缩小的问题倒在会话写入查询看起来是这样的:MySQL随机插入查询需要很长时间
INSERT INTO Session VALUES('lvg0p9peb1vd55tue9nvh460a7', '1275704013', '') ON DUPLICATE KEY UPDATE sessAccess='1275704013',sessData='';
慢速查询日志中有这样的信息:
Query_time: 0.524446 Lock_time: 0.000046 Rows_sent: 0 Rows_examined: 0
出现这种情况大约每10次。查询通常只需要〜0.0044秒。
该表是InnoDB约60行。 sessId是带BTREE索引的主键。
由于这是在每个页面视图上访问的,显然这不是一个可接受的执行时间。这是为什么发生?
更新:表模式是:sessId:VARCHAR(32),sessAccess:INT(10),sessData:文本
什么类型的列是sessData?请为您的表提供整个模式。 – 2010-06-05 03:01:37
描述你的测试环境(处理器,RAM,磁盘,磁盘上的可用空间,还有哪些可能会与CPU/RAM /磁盘竞争的盒子上运行)。有时随机性能问题是环境问题。 – 2010-06-05 03:27:36
该应用程序是在一个VPS主机计划与约300 MB的RAM。它是一个通常运行最小的网络软件的CentOS服务器。 – CrossProduct 2010-06-05 05:24:10