假如有100万条数据,我怎样设计数据库

解决方案 »

  1.   

    遵守第三范式即可, 主要看应用方面吧, 是query 多还是 update 多。
      

  2.   

    1,盡量使用ID(int 或是bigint類型作主鍵)
    2,按主鍵建索引
    3,不要分太多的Join
      

  3.   

    遵守第三范式
    具体指什么,给解释一下!thx
      

  4.   

    跟查询有关系的. 如果是Oracle作分区表,如果你经常使用的查询跟这个分区规则有关,那就更好
      

  5.   

    redbb(....DB & DEV....抵制日货,人人有责...) ( ) 信誉:157    Blog  2006-10-17 20:00:21  得分: 0  
    遵守第三范式即可, 主要看应用方面吧, 是query 多还是 update 多。
    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    同意~ 先要知道该表是用来主要query还是update?
    两种情况设计完全不同. 如果面试没说明, 那就两种情况全回答.
      

  6.   

    我怎么觉得这个100W是说一个数据表的设计问题!
    主要问题应该是建立什么样的索引,视图,主键构造问题!这方面我了解不太多,有机会可以交流。
    QQ:276125974。
    做技术的,总会碰到新问题,关键在于你怎么快速解决!
      

  7.   

    100W地记录不算什么,主键用Number,主要索引不能太多,依赖查询条件的个数。如果是分区表,分区条件放在最先查询。
      

  8.   

    100万条记录。  用ORACLE或SQL SERVER 的墨认设置建库就行了,   加点索引优化一下查询功能。 其它什么都可以不用优化。  100万感觉不是记录是 RMB    :D
      

  9.   

    1、范式
    2、尽量用短表
    3、纵向也可切割表,查询用union,不过100w条就没这必要了
      

  10.   

    在带有索引的列中进行搜索(单独的搜索),你是不会感觉到 1000行和 100W行的速度有什么分别的。 关于数据库的设计与优化的问题,很复杂,我也不太懂, 下面只是说说基本的优化。
    1.  符合 第三范式,不要多也不要小,除非你是高手。是有高手逆规范来提高性能的。
    2. 连接 join 尽量小
    3. 外建, where 子句,order by 子句 里面的列都要添加 索引。
    4.主键 要单列而且是没有"逻辑意义"的,就是额外添加上去的。用int 或 GUID类型,int 比较快。
    5. 用95%减去 两次索引重建之间发生的数据修改的百分比 ,来做索引的填充因子。如果不知道就设置85% 吧。
    6.在最常用的列添加 聚集索引。
    7.有必要的 要用 全文索引搜索。
    其它的优化要你自己去做了。
                
    有很多觉得是有效的优化,其实都是没有效果的,甚至的反效果的,数据库本身就会自动进行优化的。性能测试是证明优化效果的唯一方法。
    我觉得如果做好其他的优化 分表可能没有必要吧,因为 数据库是不会把不用的数据读到内存的,索引是树结构的。