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注入。