查询:
mysqli_query($link
"UPDATE users SET lastclick = '". time() ."', lastpage = '". ucfirst(page) ."'
WHERE id = '". $user['id'] ."' ");
花费太长时间(100ms +),如何加快此查询速度/是否可以加快此查询速度?
表格结构
答案 0 :(得分:0)
我想到的一件事是,当您输入时间值时,为什么lastclick
列设置为INT
?此外,对于查询中的id
列,不需要单引号。输入整数,列也定义为整数。试试这个问题:
UPDATE users
SET lastclick = UNIX_TIMESTAMP(),
lastpage = '". ucfirst(page) ."'
WHERE id = ". $user['id'] ."
您还需要通过调用类似的查询来更改表结构:
ALTER TABLE users
MODIFY lastclick TIMESTAMP NOT NULL;
有关ALTER TABLE
语句语法的详细信息,请参阅MySQL Reference Manual。另外,请参阅UNIX_TIMESTAMP()
命令help page。
通过将列定义为TIMESTAMP
,MySQL在内部将数据存储为UNIX时间戳值。执行SELECT
语句后,MySQL会自动将数据值传输到时间戳格式。如果您希望以UNIX时间戳接收数据而不是格式化字符串,则使用相同的UNIX_TIMESTAMP()
命令,例如:
SELECT UNIX_TIMESTAMP(lastclick)
FROM users;