Loading

SQL语句查询优化方法

建立索引并命中索引,在查询的时候,要尽量让数据库引擎使用索引。加入explain执行计划

1.尽量避免使用select *
2.尽量避免使用!=
3.尽量避免使用or
    优化方式:可以用union代替or。如下:
    SELECT * FROM t WHERE username="hkw"
    UNION
    SELECT * FROM t WHERE nickname="jon"
4.尽量避免使用in 和not in
    优化方式:如果是连续数值,可以用between代替
    如果是子查询,可以用exists代替。如下:
    SELECT * FROM t1 WHERE EXISTS (SELECT * FROM t2 WHERE t1.username = t2.username)
5.尽量避免在字段开头模糊查询
    SELECT * FROM t WHERE username LIKE '%li%'
    优化方式:尽量在字段后面使用模糊查询。如下:
    SELECT * FROM t WHERE username LIKE 'li%'
6.尽量避免进行null值的判断
    SELECT * FROM t WHERE score IS NULL
    优化方式:可以给字段添加默认值0,对0值进行判断。如下:
    SELECT * FROM t WHERE score = 0
7.尽量避免在where条件中等号的左侧进行表达式、函数操作
    SELECT * FROM t2 WHERE score/10 = 9
    SELECT * FROM t2 WHERE SUBSTR(username,1,2) = 'li'
    优化方式:可以将表达式、函数操作移动到等号右侧。如下:
    SELECT * FROM t2 WHERE score = 10*9
    SELECT * FROM t2 WHERE username LIKE 'li%'
posted @ 2022-11-12 21:48  hkwJsxl  阅读(67)  评论(0编辑  收藏  举报