查询:MySQL的UPDATE查询时间太长(100ms的+)
mysqli_query($link
"UPDATE users SET lastclick = '". time() ."', lastpage = '". ucfirst(page) ."'
WHERE id = '". $user['id'] ."' ");
时间太长(100毫秒+),我怎么能加快该查询/是有可能加快这一查询?
表结构
查询:MySQL的UPDATE查询时间太长(100ms的+)
mysqli_query($link
"UPDATE users SET lastclick = '". time() ."', lastpage = '". ucfirst(page) ."'
WHERE id = '". $user['id'] ."' ");
时间太长(100毫秒+),我怎么能加快该查询/是有可能加快这一查询?
表结构
一个来进入我的脑海里的东西,这就是为什么你有lastclick
列设置为INT
,当你输入的时间价值?另外,对于查询中的id
列,不需要单引号。你输入整数,列也被定义为一个整数。试试这个查询:
UPDATE users
SET lastclick = UNIX_TIMESTAMP(),
lastpage = '". ucfirst(page) ."'
WHERE id = ". $user['id'] ."
您还需要通过调用像这样类似的查询更改表结构:有关ALTER TABLE
语句的语法
ALTER TABLE users
MODIFY lastclick TIMESTAMP NOT NULL;
更多信息,请参阅MySQL Reference Manual。此外,请参阅UNIX_TIMESTAMP()
命令help page。
通过将列定义为TIMESTAMP
,MySQL在内部将数据存储为UNIX Timestamp值。在执行SELECT
声明时,MySQL自动将数据值转换为时间戳格式。如果您希望接收该数据为UNIX时间戳,而不是格式化字符串,然后用同样的,UNIX_TIMESTAMP()
命令,如:
SELECT UNIX_TIMESTAMP(lastclick)
FROM users;
添加索引到你的表? – GrandMasterFlush 2013-05-01 12:34:51
请让我们知道您的表格结构。给我们一个DESCRIBE用户查询的输出 – GregD 2013-05-01 12:35:45
@GregD - > http://i41.tinypic.com/35avd05.png – Obe 2013-05-01 12:44:10