美文网首页
mysql遇到的问题

mysql遇到的问题

作者: liguiyun | 来源:发表于2023-03-22 15:50 被阅读0次

    一,.日常工作中,你是怎么优化SQL的
    1,恰当的建立索引或者联合索引
    2,避免使用 is not null ,or ,is null,条件用到内置函数,条件类型不一致,避免in 数据过多等导致索引失效
    3,需要什么数据就查询什么数据,避免* 加载全部字段
    4,避免表里面建立比较大字段比如 text,blod大字段,和大的carchar字段,如果必须要用可以单独存放和文件服务保存
    5,表关联查询可以以小表驱动大表
    6,如果必须关联很多表查询,可以做字段冗余,或者 union all
    7,查询业务逻辑如果只能有一条加上 limit 1,
    8,select update,条件后面字段避免是非索引字段,避免锁表
    二,是否遇到过深分页问题,如何解决
    1,查询带上上一次查询的id,进行查询
    2,通过子查询先查询出id,然后再通过id筛选进行查询,避免过多的数据回表
    三,聊聊explain执行计划
    1,我一般就看四个字段 一个是type,key,rows,Extra
    type 看索引级别,根据自己的筛选需求是否合理
    key 用的那个索引,如果不是自己想要的索引,可以排查一下为啥,row扫描行数时候合理,如果不合理是不是索引不对,或者执行计划不对
    Extra 就看是否用到了索引,是否用到了排序(通过索引可以避免排序)
    四,说说大表的优化方案
    1,如果表大就合理分表,可以分热数据和冷数据,避免冷数据总掺和更新操作
    2,超大字段单独独立存放
    3,通过字段冗余避免多表关联
    五,哪些因素可能导致MySQL慢查询
    1,没有用到索引,比如一上面所说导致索引失效
    2, is not null ,or ,is null,!= ,<>,条件用到内置函数,条件类型不一致或者两张表编码不一致,避免in 数据过多等导致索引失效,或者是选错了索引,可以使用强制索引,以及深分页的问题
    3,单表数据量过大,或者字段太多
    4,join的表太多
    5,也可能数据库正在刷脏页,
    6,order by 用到了 文件排序,
    六,如何使用索引优化SQL查询?
    1,首先避免五里面的所有内容 sql还是慢,

    相关文章

      网友评论

          本文标题:mysql遇到的问题

          本文链接:https://www.haomeiwen.com/subject/dafbrdtx.html