![]() | 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 ![]() 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的数据也没问题 |