phpmyadmin 打开一张有一亿条数据的表经常 504 怎么办

2017-02-11 14:25:47 +08:00
 chenqh

这张表可以説成一个日志表,表结构类似(用户 id,用户当前经验,用户变更经验值,用户变更经验值类型,创建时间), 有一亿条数据, 总共大小 12.6G. 对用户 id 做了索引,索引 1.6G

3149 次点击
所在节点    问与答
18 条回复
lhbc
2017-02-11 14:33:16 +08:00
打开是指 select * ?
chenqh
2017-02-11 15:12:50 +08:00
@lhbc 在 phpmyadmin 里面点击那张表
grimpil
2017-02-11 15:52:15 +08:00
用命令行试试呗
wudege
2017-02-11 16:08:40 +08:00
可以更改 Web Server 和 PHP 执行超时时间;
[参考]( https://segmentfault.com/a/1190000002686153)
lhbc
2017-02-11 16:43:14 +08:00
为什么不是 select count(id)?
select * 任何情况都尽量不要用
wvidc
2017-02-11 17:01:55 +08:00
分表
msg7086
2017-02-11 17:09:15 +08:00
就问一句, InnoDB 还是 MyISAM/Aria ?
chenqh
2017-02-11 18:09:21 +08:00
@msg7086 innodb
uzumaki
2017-02-11 20:54:48 +08:00
本地用软件试试?
ferock
2017-02-11 21:31:31 +08:00
@lhbc 这个也是不对的
Felldeadbird
2017-02-11 21:59:41 +08:00
没有条件下,扫全表啊。这个情况还是用命令行吧。
pathbox
2017-02-11 22:02:43 +08:00
和你的表结构有关, count(*) 不一定就用的主键, 尝试用 count(id) 试试呗
HLT
2017-02-11 22:04:24 +08:00
谁设计的。。。
mansur
2017-02-11 22:12:01 +08:00
你删除过记录就要挨个数了
gouchaoer
2017-02-11 23:12:20 +08:00
说了半天都没人告诉 lz , select (*)在 myiaam 中是常数级的, innodb 却不是的,至于 select count 一回事。。。走主键索引也是扫表啊。。。。你 explain 不就知道了
zhtsuc
2017-02-11 23:18:57 +08:00
不管是啥,你 select 在一个亿 db 里查询,肯定慢,遇到这种情况,只能分片查询,或者从一开始就分表。
sagaxu
2017-02-12 14:53:12 +08:00
gam2046
2017-02-12 21:22:21 +08:00
没有 where 语句,何来走索引一说?都没筛选条件,不就是扫全表然后输出么?和 select 啥貌似没啥关系......

走不走索引不应该是看条件语句么?和查询的字段难道也有关系...

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/339758

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX