假如有100万条数据,我怎样设计数据库
解决方案 »
- 请教 C# 类退出前的清理工作在哪里?析构函数还是其它位置?
- 关于.NET
- 属性中的访问器前面的修饰符有什么意义呢?就是get , set前面加public之类的修饰符我感觉不出他的意义,加在属性前还说的过去,加在访问器前就完全不知道什么意思了,求教???
- winform里面怎么实现窗体关闭时提示是否保存对话框(含YesNoCancel),但选择了Cancel后返回窗体不关闭
- Gmail中用到的这个控件叫啥呢?WPF中能不能做到呢?
- 如何取得一颗树所有节点的值
- ConfigurationSettings.AppSettings配置节问题
- 求助~button按钮问题
- c#读取Documents and Settings\Local Settings\Temporary Internet Files问题
- Windows服务和窗体的问题
- 如何把16进制asc码还原成汉字
- [牢骚50] 技术重要还是文凭重要?
2,按主鍵建索引
3,不要分太多的Join
具体指什么,给解释一下!thx
遵守第三范式即可, 主要看应用方面吧, 是query 多还是 update 多。
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
同意~ 先要知道该表是用来主要query还是update?
两种情况设计完全不同. 如果面试没说明, 那就两种情况全回答.
主要问题应该是建立什么样的索引,视图,主键构造问题!这方面我了解不太多,有机会可以交流。
QQ:276125974。
做技术的,总会碰到新问题,关键在于你怎么快速解决!
2、尽量用短表
3、纵向也可切割表,查询用union,不过100w条就没这必要了
1. 符合 第三范式,不要多也不要小,除非你是高手。是有高手逆规范来提高性能的。
2. 连接 join 尽量小
3. 外建, where 子句,order by 子句 里面的列都要添加 索引。
4.主键 要单列而且是没有"逻辑意义"的,就是额外添加上去的。用int 或 GUID类型,int 比较快。
5. 用95%减去 两次索引重建之间发生的数据修改的百分比 ,来做索引的填充因子。如果不知道就设置85% 吧。
6.在最常用的列添加 聚集索引。
7.有必要的 要用 全文索引搜索。
其它的优化要你自己去做了。
有很多觉得是有效的优化,其实都是没有效果的,甚至的反效果的,数据库本身就会自动进行优化的。性能测试是证明优化效果的唯一方法。
我觉得如果做好其他的优化 分表可能没有必要吧,因为 数据库是不会把不用的数据读到内存的,索引是树结构的。