zoukankan      html  css  js  c++  java
  • 数据库查询条件优化方案

    前言

    数据库中的很多查询都是可以优化的,本文记录了博主数据库用到的优化方案,希望能给大家提供一些思路。

    1.使用instr代替like

    instr函数也有三种情况:
    a. instr(字段,'关键字') > 0    相当于 字段like '%关键字%':        表示在字符串中包含‘关键字’
    b. instr(字段,'关键字') = 1    相当于 字段like '关键字%'            表示以‘关键字’开头的字符串
    c. instr(字段,'关键字') = 0    相当于 字段not like '%关键字%'  表示在字符串中不包含‘关键字’

    2.使用exists代替in

    这个优化方案不是绝对的,如果子查询得出的结果集记录较少,主查询中的表较大且又有索引时应该用in, 反之如果外层的主查询记录较少,子查询中的表大,又有索引时使用exists

    3.使用not exists代替not in

    如果查询语句使用了not in 那么内外表都进行全表扫描,没有用到索引;而not extsts 的子查询依然能用到表上的索引。所以无论那个表大,用not exists都比not in要快。

    4.使用union all代替or

  • 相关阅读:
    占位博客
    占位博客
    占位博客
    占位
    占位
    占位
    占位
    占位
    python字典设置初始值setdefault()与get()
    自然语言处理如何入门
  • 原文地址:https://www.cnblogs.com/shuhao66666/p/15196323.html
Copyright © 2011-2022 走看看