【发布时间】:2018-05-20 22:28:06
【问题描述】:
我有一个大型 mysql 表(100 万行),如果我的用户同时点击它,它将在大约同一时间进行大量查询(比如 5 秒内 300 个查询),它会将我的网站带到暂停(执行所有查询大约需要 22 秒)。
这正常吗,我该怎么办?
我尝试使用较小的桌子,它工作正常,但在较大的桌子上它很残酷。
有什么想法吗?
我在 php 和 node 上都试过了,但不是这样,它是我的数据库。 谢谢
这就是桌子上的解释:
当前选择不包含唯一列。网格编辑、复选框、编辑、复制和删除功能不可用。
字段类型 Null Key 默认 Extra
id int(11) NO PRI NULL auto_increment
game_id int(11) NO NULL
user_id int(11) NO NULL
question_id varchar(10) 否
回答文本 YES NULL
distanceAway int(11) 是 NULL
点 int(11) 是 NULL
questionNum int(11) NO NULL
纬度浮动 YES NULL
longg float YES NULL
颜色 varchar(6) NO NULL
submitTime 时间戳 NO CURRENT_TIMESTAMP
平均浮动 NO NULL
【问题讨论】:
-
数据库索引是否正确?还取决于您的查询方式。
-
stackoverflow.com/questions/46853339/… 和你之前的帖子有关系吗?
-
您考虑过使用查询级缓存吗?请参考dev.mysql.com/doc/refman/5.7/en/query-cache.html
-
你能告诉我们查询吗?从文章中选择 * 当然是致命的
-
没有更多信息,没有太多具体的建议可以提供。但是,如果调整查询是一门艺术,那么有一些工具可以帮助您。 EXPLAIN 可以帮助您识别可以改进的地方索引。 Optimizing SELECT 有足够的信息让你头脑发热,但你的答案就在里面。