1.用户多,最少百万级
2.数据量庞大,百万级数据量搜索
3.操作多,同时或时间很短出现两个用户对表操作,另一个用户无法操作
4.在一个用户执行事务只要实现其他用户对表的插入和更新就行5.我恨啊  CSDN有Bug 刚刚我在发帖的时候 选其他数据库 [其他数据库开发/MySQL/Postgresql] 发的帖子看不成 老是报 404
可是我的100分就这样被扣了  没分了 相信大家不会介意的 谢谢

解决方案 »

  1.   

    什么数据库?
    如果是新增,要保留事务的短小Oracle和SQL05以上版本,读表时可用快照隔离,不受新增的影响
      

  2.   

    1.用户多,最少百万级,可以考慮表分區,按某一時間段進行分區,對於歷史數據,可以考慮分庫,對歷史數據作归档。2.数据量庞大,百万级数据量搜索,海量数据的搜索,必须考虑搜索引擎技术,如開源的Lucene,非常不錯的。當然可以考虑使用ms的全文搜索功能。3.操作多,同时或时间很短出现两个用户对表操作,另一个用户无法操作。
      可以考虑升级至sql 2005或以上版本,使用快照+同步复制实现读写分离。在sql 2012的快照可以直接读快照里面的内容,这样在一定业务需求范围内,快速满足我们的读写分离需求。4.在一个用户执行事务只要实现其他用户对表的插入和更新就行
     
     这句号有矛盾。事务要控制事务中的执行先后顺序保持一致,事务尽量短,对应一些不要求严谨的查询考虑允许脏读,这就要降低事务隔离级别,通常的做法是select 的时候不设置共享锁(nolock)实现。
      

  3.   


    oracle 8i 和sql server 2008 sql用的少但也用 oracle怎么办啊? 
      

  4.   

    分区在物理上是分开的,但是从sqlserver看来是一个表,2005以上才支持分区。在微软sqlserver2012广州发布会上,他们的DBA说过,给客户的意见是:3000万数据以上就要分区
      

  5.   

    3楼说的很好啊
    我有三个问题啊 
    1.旧数据放到其他库中 新数据分区 会不会造成数据不同步 客户对旧数据偶尔也会去访问的
    2.sql server 2008里面的 快照+同步复制能替代事务么? 会不会锁住数据或造成数据不同步
    3.我找过资料 看过淘宝核心博客的一篇文章也是将很大的事务细分 通过中介表来判断提交还是回滚 软件这方面能减少依赖或者也细分事务么?
      

  6.   


    1.用戶偶尔访问历史数据,你可以设置专门的查询历史数据的连接,当查询历史数据的时候就要重新设置连接,连到历史库查询资料。2.2008里面的快照是不能访问的,在2008里面快照最大的作用是作为故障转移使用。如果说想实现读写分离,需要通过事务复制。或者通过其他中间件如Moebius。3.淘宝開源的工具沒具體研究,無法定論。