软件测试中SQL代码的优化

发表于:2013-11-21 11:57

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:qin_huang    来源:51Testing软件测试网采编

  1.使用索引可以快速的访问数据库表中的特定信息,索引是对数据库表中一列或多列的值进行排序的一种结构,例如 employee 表的姓名(name)列。如果要按姓查找特定职员,与必须搜索表中的所有行相比,索引会帮助您更快地获得该信息。但是有些索引会因为SQL代码使用不当导致索引不被使用,所以在软件测试中我们应该纠正那些不当的SQL代码。以下就是sql代码需要优化的情况:
  (1)在主键上建了索引,查询条件主键使用or。
  select *from tb_user where fd_userid=19 or fd_userid=21;这时建在fd_userid的索引将不被使用。
  建议改成 where fd_userid in(19,21)
  (2)尽量避免使用union。
  (3)尽量避免使用not,可以用运算符代替。
  (4)隔离条件上的列,如:select * from tb_a where fd_value+=100。这时建在fd_value的索引将不被使用。
  (5)尽量不单独使用and,可以用between…and…如:where fd_time>100 and fd_time<120。可以改成fd_time between 100 and 120。
  (6)尽量避免使用like的特殊形式:“%”或“_”开头,如:“%bn” “_bn”。
  (7)减少冗余条件
  (8)避免使用having,也会影响字段的索引
  (9)少用distinct
  (10)避免使用any all,如select fd_id from tb_a where fd_id<=all(select fd_id from tb_b);可以改成<=(select min(fd_id) from tb_b+++)
  (11)避免使用原生态的SQL语句,容易有sql注入。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号