我有一个表"user_values“,有20多万行。表如下所示:
id | user_id | scan_date | value | category | user_date |
1 | 1 | 2016-12-10 10:10:10 | 10 | 1 | 2016-01-05 11:11:11 |
2 | 2 | 2016-12-10 10:10:10 | 14 | 2 | 2016-02-06 12:12:12 |
3 | 3 | 2016-12-10 10:10:10 | 15 | 2 | 2016-03-07 13:13:13 |
4 | 1 | 2016-12-10 12:10:10 | 11 | 1 | 2016-01-05 10:10:10 |
5 | 2 | 2016-12-10 12:10:10 | 13 | 2 | 2016-02-06 12:12:12 |
6 | 3 | 2016-12-10 12:10:10 | 17 | 2 | 2016-03-07 13:13:13 |
7 | 1 | 2016-12-10 14:10:10 | 13 | 1 | 2016-01-05 11:11:11 |
8 | 2 | 2016-12-10 14:10:10 | 15 | 2 | 2016-02-06 12:12:12 |
9 | 3 | 2016-12-10 14:10:10 | 16 | 2 | 2016-03-07 13:13:13 |
10 | 1 | 2016-12-10 16:10:10 | 18 | 1 | 2016-01-05 11:11:11 |
11 | 2 | 2016-12-10 16:10:10 | 13 | 2 | 2016-02-06 12:12:12 |
12 | 3 | 2016-12-10 16:10:10 | 14 | 2 | 2016-03-07 13:13:13 | "scan_date“是写入行的时间。
Mysql每天在这个表中写入大约一百万行。
我有一个SELECT查询来获取每个用户的最后一个'value‘:
SELECT * FROM (SELECT * FROM user_values
WHERE
category = '2' AND
user_date >= '2016-01-16' AND
user_date <= '2016-12-15 10:34:35'
ORDER BY id DESC LIMIT 999999999) as user_values
WHERE
category = '2' AND
user_date >= '2016-01-16' AND
user_date <= '2016-12-15 10:34:35'
GROUP BY user_values.user_id我发现查询的速度越快,但是现在我得到错误消息"MySQL服务器已经消失“,因为查询太慢了。
我也试着创建分区: 100个分区按hash(id),但我没有解析,我想现在更慢了。
有人建议我买一台功能强大的服务器,但我认为我没有解决这个问题。有人建议我创建一个mysql“集群”主备。
您是否有其他建议或更好的查询或更好的mysql配置?
发布于 2016-12-22 18:35:13
从mysqli中的数据库获取最后一次插入id
$sql = "YOUR INSERT QUERY";
if ($conn->query($sql) === TRUE) {
$last_id = $conn->insert_id;
}使用上一个用户id获取值
$sql2 = "SELECT `value` FROM tablename where `id`=$last_id ;
$value = $conn->query($sql2);
echo "Value of last user is $value"通过PDO获取上次插入id
$sql = "YOUR INSERT QUERY";
$conn->exec($sql);
$last_id = $conn->lastInsertId();使用上一个用户id获取值
$sql2 = "SELECT `value` FROM tablename where `id`=$last_id ;
$value = $conn->query($sql2);
echo "Value of last user is $value"发布于 2016-12-22 19:39:57
id | select_type | table | type| possible_keys | key | key_len | ref | rows | filtered | Extra |
1 | PRIMARY | <derived2> | ALL | NULL | NULL | NULL | NULL | 53604| 100.00 | Using where; Using temporary; Using filesort|
2 | DERIVED |users_values| ref | category,user_date | category | 4 | const | 53604| 100.00 | Using where; Using filesorthttps://stackoverflow.com/questions/41280827
复制相似问题