zoukankan      html  css  js  c++  java
  • mysql调优

    mysql调优
    一:避免全表扫描 在 where  order by涉及字段设置索引
        1.where 条件中避免使用 != > < ,否则将引擎放弃使用索引而进行全表扫描。
        2.避免where条件对null判断 ,否则将引擎放弃使用索引而进行全表扫描。
            可以将null设置成 0 表示
        3.where 条件避免or 来判断 ,否则将引擎放弃使用索引而进行全表扫描。
            select id from tablename where name='Tom' or name='Que'  Error
    
            select id from tablename where name='Tom' union all (联合查询)
            select id from tablename where name='Que'                True
        4.不能模糊查询,否则将引擎放弃使用索引而进行全表扫描。
            select id from tablename where like '%ang%' Error
            若要提高效率,可以考虑全文检索。
        5.in  not in用法
            select id from tablename where score in (90,91,92) Error
            对于连续的数字可以用between
            select id from tablename where score between 90 and 91
        6.避免修改字段的值,否则将引擎放弃使用索引而进行全表扫描。
            select name from tablename where score+1=60     Error
            select name from tablename where score=60-1        True
             where 条件 '='左边不能进行函数表达式计算,则将引擎放弃使用索引而进行全表扫描。        
                 -- 在where语句尽量避免对字段进行函数操作
        7.很多时候用 exists 代替 in 是一个好的选择
            select name from tablename wherer name in(select name from tablename1)    Erroe
            select name from tablename where exists(select name from tablename1 where name=tablename.name)    True
  • 相关阅读:
    大端模式与小端模式
    通过tcp socket实现Linux与windows之间的文件传输
    关于递归的几个小例子
    关于线性表的一些简单应用
    数据结构(c语言实现)--线性表
    简单实现getpwnam()
    chapter 7 内存分配函数
    chapter6 非局部跳转函数 setjmp()与longjmp()
    Xcode 出现Permission denied 解决方法
    关于ARfoundation ILRuntime热更新项目的坑
  • 原文地址:https://www.cnblogs.com/tangpg/p/8907315.html
Copyright © 2011-2022 走看看