美文网首页
数据库优化

数据库优化

作者: 摸摸脸上的胡渣 | 来源:发表于2020-02-11 14:56 被阅读0次

优化整体可以分为两方面,软件方面和硬件方面。

硬件方面

成本过高,但收益也较高。

软件方面

后台程序员一般涉及到的是软件方面,成本较低且收益比较大。

其中软件方面的优化也可以分为两方面,上线前check和上线后check

上线前check

1.创建表时,要考虑表的常用字段,一般要为常用字段增加索引,但也不能全加,索引的创建和维护更新,也是耗费资源的。
2.写sql语句时,要注意尽量用到索引字段,可使用Explain命令对sql进行检查。主要是对type字段进行查看,一般用到的是type是const(应用主键或者唯一索引进行等值查询),ref(应用join或者联合索引),range(应用主键或者唯一索引进行范围查询)。
3.还应注意写sql语句时,避免因为使用函数,对列进行运算,模糊查询,错误使用联合索引等造成的索引失效情况。

上线中check

发布后,会观察后台服务器的错误日志,并且观察数据库集群的写tps和读tps,并且也会观察主从延迟等指标

上线后check

  1. 慢查询日志
    一般公司使用的是pt-query-digest工具进行异常查询的统计,涉及的字段相关含义及其应注意点,已经总结成图。


    pt-query-digest.png

    我遇到的慢查询一般通过加索引解决,但是注意不要在业务高峰期进行操作,会对表的性能有影响。DBA在改表结构时,使用的是pt-online-schema-change工具,原理如下


    pt-online-schema-change.png
  2. 死锁查询
    MySQL通过开启innodb_deadlock_detect开关,可以进行死锁检测,每当有事务被锁时,就会开始检测进行检测是否出现了循环依赖,如果有的话,就会将持有数据行数最少的事务进行回滚。
    todo 死锁的具体案例和解决

相关文章

  • zabbix优化之进阶版

    官网调优 1. 数据库优化 1.设置数据库分区优化,buffer优化,hash优化, 说明:数据库分区优化的优点:...

  • 数据库存储原理特性索引优化

    说一下mysql数据库存储的原理? 事务的特性? 数据库索引 数据库怎么优化查询效率? 数据库优化方案 优化索引、...

  • MySQL优化

    数据库SQL优化大总结之 百万级数据库优化方案

  • 数据库索引创建与优化

    对于数据库的优化主要包括三个部分:查询优化、索引优化和字段类型优化,其中,索引优化则是数据库优化的重中之重。一个查...

  • 数据库调优

    数据库优化

  • 如何设计一个高并发的系统

    数据库的优化,包括合理的事务隔离级别、SQL语句优化、索引优化 使用缓存、尽量减少数据库IO 分布式数据库、分布式...

  • Web性能优化常见技巧

    阶段一:访问网页地址 阶段二:发出请求:http请求优化 阶段三:访问数据库 (SQL数据库优化)后端优化 阶段四...

  • MySql数据库的优化--数据库设计上的优化

    Mysql数据的优化分为两个部分,一个是数据库设计上的优化,另一个是数据库执行时的优化。 数据库设计上的优化 有些...

  • MySQL数据库优化的这几种方式你都知道吗?

    数据库优化涉及到方方面面的知识,每种数据库的架构,优化方式也都有着很大的差异,如果想做好数据库优化要了解数据库的技...

  • mysql数据库优化 摘要

    数据库优化 sql语句优化 索引优化 加缓存 读写分离 分区 分布式数据库(垂直切分) 水平切分 MyISAM和I...

网友评论

      本文标题:数据库优化

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