使用用户ID对数据库中表进行切分的疑问!
主数据库中存放所有用户ID和用户对应的数据库ID
每个用户对应的数据库中存放该用户的贴子信息,贴子分类信息等
问题:
分页显示所有贴子并按发布时间排序该如何做? 因为用户的贴子都分布在多个数据库中,是不是要把分布在多个数据库中的贴子ID都取出来,然后在内存中对贴子进行排序?这样做我觉的效率会很差。大家有没有什么好的办法?
目前在做一个Rss收集相关的web系统。
1.数据库是使用多台mysql。
2.用mysql 的 replication来分离读写。
3.根据用户ID来分布数据库中的数据。
问题:
1.mysql没有像oracle中的sequence。自制sequence的话怕影响效率。
2.采用mysql中的自增长主键,在分布数据库中会有重复主键问题。键值必须在多个数据库中惟一。
3.在网上查了几个程序生成的主键的方式,似乎都很长最长的要128位,这对与键索引来说会太大。
4.用时间到毫秒在加5位随机数来生成主键,但这也要20位,还是不理想。
查询了公司之前项目的主键生成机制。
发现了原项目中用了Or ...
写内存,写文件,写数据库,如何权衡!
速度比较:写内存>写文件>写数据库
写内存快是快,但是内存中的数据是无法持久化的。
写文件比起写数据库速度快了很多,但是查询统计文件中的数据就非常困难了。
写数据库就是慢,特别是高并发的时候会锁表。
看看流量分析系统是如何权衡这三种的关系的:
流量分析系统会在每个要被统计的网站上放上一段js,每次网站的某一个页面被访问时这段js都会提交一次流量分析系统用与统计PV。所以流量分析系统的并发量是非常大的。
并发量如此之大,所以每次提交的数据不能直接写文件,更不能写数据库,所以只能写内存。在java中可以写入一个Static的Vector中,并用一个线程 ...
- 浏览: 3334 次

- 详细资料
搜索本博客
最近加入圈子
最新评论
-
数据库主键策略的一些感想
据我的经验,数据库的主键用整数最好,可以考虑长整型的。一个表一般只需要一个字段作 ...
-- by ltian -
数据库主键策略的一些感想
自己写一个序列生成器,利用数据库提供的机制会让你的系统绑定在特定数据库平台之下。 ...
-- by ltian -
数据库主键策略的一些感想
字符串可能效率会不够。可以考虑这样的策略:类似用户id分配,每个数据库给个编号, ...
-- by birdjavaeye -
数据库主键策略的一些感想
自制sequence做好是不应该有效率问题的,而且有高度数据库平台无关性的优点, ...
-- by fight_bird -
数据库主键策略的一些感想
索引用整形比用字符串性能好吧。
-- by onlytiancai






评论排行榜