1
feiandxs 2012-09-04 14:41:49 +08:00
虽然方法多种多样,但根据楼主问问题的表述方法,臆测了下楼主可能会用的手段以及不太可能会用到的方案,最后答案两个字。
拆之。 |
2
bruce 2012-09-04 15:17:04 +08:00
我只想说一句:假如你获取一个用户成本1毛,搞到1亿用户成本就是1000万元。
|
4
FinF 2012-09-04 15:25:09 +08:00
分表
|
5
chairo 2012-09-04 15:50:24 +08:00
看具体情况了,如果只用用户id索引查询的话,在用户id列加个索引,效率也就差不多了
否则拆表,拆库,读写分离,db负载均衡,memcache,nosql啥牛逼就上啥。 |
6
bruce 2012-09-04 16:25:30 +08:00
手头巧好有个 2 亿条数据存在 MongoDB 的表,查询毫无压力。
如今如果优化的好,千万数据 MYSQL 单表毫无压力。 |
8
bruce 2012-09-04 16:30:14 +08:00 3
MYSQL 优化: http://blog.eood.cn/mysql
MongoDB 只要加好索引问题就不大了。 |
9
alexzhan 2012-09-04 16:35:07 +08:00
不见得分表就是最好的方式。
具体情况具体分析。 Reddit's database has only two tables. http://kev.inburke.com/kevin/reddits-database-has-two-tables/ |
10
idblife 2012-09-04 19:07:51 +08:00
对于oracle来说,这个很轻松,分区表即可。对mysql不熟悉。。。
|
11
cam 2012-09-04 23:52:30 +08:00
请先确定,你的用户真的过亿吗?如果是就用钱来搞定。
|
13
0bit 2012-09-05 09:35:26 +08:00
PostgreSQL的话,可以用分区表,MySQL就不知道了,木有用过
|
14
zhuf 2012-09-05 10:43:58 +08:00
mysql 可以拆表,或者读写分离。
不过具体场景还是具体分析吧。 |
15
areless 2012-09-05 11:50:06 +08:00
不要做徒劳的设计了,提高4K读写自然会快,SSD做RAID 0吧。
无论哪种数据库,哪种方式优化。。。在一台才几M读取速度的机械硬盘老爷机下都没有意义。 |
16
bigwang 2012-09-05 12:29:05 +08:00
根据查询条件分表分库,百万规模的表和千万规模的表,查询速度有很大差别
如果拿 MongoDB 做线上实时查询,那是玩票不负责的 mongodb比较适合做数据挖掘,分析日志什么的,可以当做一个单机,简易版的hadoop用 |
18
chaker 2012-09-05 15:44:54 +08:00
用 TTree,上TB的数据也没问题
|