美文网首页
MYSQL 容易忽略的几个性能优化点

MYSQL 容易忽略的几个性能优化点

作者: 9016 | 来源:发表于2018-10-08 16:31 被阅读24次

    一、WHERE后面的条件顺序影响
    比如表student,无索引
    id name sex age
    1 lily 1 3
    2 tom 0 25
    3 john 0 18
    4 daniel 1 40
    5 joy 1 45

    Select * from zl_yhjbqk where sex= 1 and age > 35
    Select * from zl_yhjbqk where age > 35 and sex= 1

    第一句,比较了8次,第二句,比较了7次。所以第二句执行效率高。

    二、关联查询表顺序的影响
    BIG大表,SMALL 小表

    select * from BIG,SMALL where Big.bid = SMALL.sid;
    select * from BIG,SMALL where SMALL.sid= Big.bid;

    理论上大表在前,小表在后,效率高,现代数据库技术会自动优化,执行无差异。

    三、避免大的删除
    一条语句一次性执行删除多条数据的操作,则可能需要一次锁住很多数据,事务日志被占满,系统资源被消耗、很多小的但重要的查询被迫排队。
    如果将一个大的删除分解成多个较小的删除操作,可以将服务器压力分散,减少删除时锁的等待时间,减少MySQL主从复制的延迟,尽可能小地影响MySQL性能。

    四、多表查询应分解
    分解关联查询,尽量避免一条SQL实现多表关联查询。拆分SQL,对每个要关联的表进行单表查询,然后将结果在应用程序中进行关联。
    因为这样可以减少锁开销,业务与数据分离得更彻底,避免可能的对数据的重复访问,将计算压力转移到应用服务器。

    相关文章

      网友评论

          本文标题:MYSQL 容易忽略的几个性能优化点

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