1
frank451 2014 年 3 月 4 日
另开一个myisam表,用count字段记录总数,写入的时候更新myisam表。
日志数据没有关联关系,可以用kv数据库,性能问题一下解决。想白天count就白天count,想晚上count就晚上count,再也不会侧漏。 |
2
raincious 2014 年 3 月 4 日
其实我觉得……弄张表来专门储存统计数据就可以了啊。
比如: 字段:key val total_topic 10 topic_1_replies 2 这样的,插入/删除数据时更新,事务保证原子性,这样就不用COUNT了。 |
3
est 2014 年 3 月 4 日
@chenlong451 莫非不是专门开个表记录总数?
|
4
shiny PRO 如果条件允许,我喜欢用 redis/memcache 来 incr
|
5
whuhacker OP |
6
weizhao029 2014 年 3 月 4 日
我觉得这种量级的count应该是一个估算数字, 不是精确的。 所以应该根据实际情况有一个算法出估计的count吧
|
8
gkiwi 2014 年 3 月 4 日
此处不清楚你的具体业务,但是你说需要“分页查询”,是否考虑可以只显示前10页的索引!后面用点号省略掉就好。。根据不用不停的向后索引点击再不停的更改查询条件?这样子每次需要做两次查询,一次是取第N页数据,一次是计算这个数量级别上的后面的还剩几页数。
|
9
raincious 2014 年 3 月 4 日
@whuhacker 嗯……其实我没说总数嗯。
如果数据是常用的,那么最好用专门的统计表来存,插入/删除时变更,用此来替代COUNT。 如果是临时的,比如审计的时候,几个月才用一次的,那么直接COUNT好了,慢点就是等着。 |
10
pubby 2014 年 3 月 4 日
13亿条,分页毫无意义啊
看看最近1000条么算了 |
11
whuhacker OP |
13
sohoer 2014 年 3 月 4 日
单表 10亿 。。。
|
14
kernel1983 2014 年 3 月 4 日
黄金法则, 数据的索引和存储分离
你们一共有多少种查询方式? 归类一下. 存储部分想办法用k/v数据库代替, 另外单独建表索引你要的业务逻辑. |
16
mengzhuo 2014 年 3 月 4 日
10亿……莫非是手机短信收费接口记录?
记得当年需求讨论时,某DBA跟我说,直接一个星期换一张表,腰也不酸,腿也不疼了~ |
17
yinheli 2014 年 3 月 4 日 via iPhone
分表,按时间来,你要查询日志,评估一下日志的时间,一年以前的数据留着实时查询何用?
|
18
saharabear 2014 年 3 月 4 日
10亿条,不算太大,分几个表就是了。另外,分页也没必要一页一页地分吧?
|
19
likuku 2014 年 3 月 4 日
非要“即时”扫描整个库...或许只有靠分布式并行查询db了...
|
20
jsonline 2014 年 3 月 4 日 via Android
分页有实际意义吗?
|
21
raincious 2014 年 3 月 5 日
|
22
nine 2014 年 3 月 5 日
先加个二级联合索引试试
把主键 和需要order、group的字段加一个联合索引 这样count(*)的时候就走这个索引了 顺便问一句你现在count一次多少时间? |
23
wwek 2014 年 3 月 5 日
it系统的基本构架方案里面有一条。
那就是 “拆”。 如果你这个不能拆。 那就按照楼上的方法来搞吧。 我还是坚持拆出来。 |
24
displayabc 2014 年 3 月 6 日
看看Tokudb这个引擎
|