(单选题)
设计数据库时,以下不能优化查询效率的措施是( )。
A.将数据、日志、索引放在同一I/O设备上,增加读取速度
B.分割数据表,减少表的尺寸
C.数据存储时适当进行数据冗余,减少数据表间的连接操作
D.在IN后面值的列表中,将出现频繁的值放在最前面
参考答案:A
参考解析:
优化查询效率的措施
1.把数据、日志、索引放到不同的I/O设备上,增加读取速度。数据量越大,提高I/O越重要。
2.纵向、横向分割表,减少表的尺寸
3.根据查询条件,建立索引,优化索引、优化访问方式,限制结果集的数量量。注意填充银子要适当(最好使用默认值0)。索引应该尽量的小,使用自己数小的列建索引好,不要对涌现的几个值的列建立单一索引。
4.用OR的子句可以分解成多个查询,并且通过UNION 连接多个查询。它们的速度只与是否使用索引有关,如果查询需要用到联合索引,用UNION ALL执行的效率更高。
5.在查询SELECT语句中庸WHERE子句限制返回的行数。避免表扫描。如果返回不必要的数据,浪费了数据库的I/O资源,加重了网络的负担,降低了性能。如果表很大,在表扫描的期间将表锁住,禁止其他的连接访问表,后果很严重。
6.注意,在没有必要的时候不要用distinct,它同union一样会使查询变慢。
7.在IN后面值得列表中,将出现最频繁的值放在最前面,出现得最少的放在最后面,减少判断的次数。
8.一般在 groupby 和 having 子句之前就能剔除多余的行,所以尽量不要用她们来执行剔除工作。
9.尽量将数据的处理工作放在服务器上,减少网络的开销,如使用存储过程。存储过程是编译好的,优化过的,并且被组织到一个执行规划里,且存储在数据库中的SQL语句,是控制流语言的集合,速度当然快。
10.不要再一句话里再三地使用相同的函数,浪费资源,将结果放在变量里再调用更快。故本题正确答案选A。