1. 字段设为 not null,加默认值, 对性能是提高还是降低
2. 查询时, 在字段上加上函数处理和查出列在代码里处理,哪种性能高
例: SELECT SUBSTRING(col,1,3) FROM table , 直接语句做处理
SELECT col FROM table , 先查出来,再在代码里处理, 哪种性能好
3. 关于频繁对数据库数据更新(一天更新上千万次), 有没有什么好的解决方案
1、最好不要允许空值,这个会影响处理速度(不是太明显)。
2、查询时,在数据库加函数肯定会影响数据库的响应速度,在C#上处理,则会影响代码执行速度。这个应该根据具体的情况选择。
3、对于上千万次/每天的更新,没遇到过,不过可以考虑下横向分表和读写分离。
第一个问题, 主要看需求, 我觉得 对性能的影响不大, 如果不需要默认值, 当然null应该更好, 求高人指点!
第二个, 这个明显程序里处理性能高,看你的复杂度,自己衡量了。
第三个的话, 感觉好像是 读写库分离的解决方案了, 如果更新不是实时的也可以, 把需要更新的数据进行批量操作。
1.加默认值应该能提高部分性能,但增加了空间
2.肯定是后者好,数据库访问应该是能简单就简单,放在程序中处理性能会更好
3.没办法,上千次不算多
1 看你的业务需求,如果在取数据时有某个字段,需要做ISNULL判断时,表中最好是加Not NULL限制,因为在查询时尽量不要在where 后面用计算函数
2 个人感觉,在SQL中做判断是比较好时的,因为都是针对IO操作,而把数据通过程序加载到内存之后,处理速度上就不是一个级别的了
3 上千万次的更新..........提升硬件肯定是一方面,然后减少表中的索引这个肯定是有好处的,因为主要是写,所以索引越少越好,其它办法肯定还有,只是我没接触过.