一般数据库优化分sql语句优化和数据库服务器参数优化,数据库服务器参数优化是DBA可以独立完成的,但是sql语句优化就必须和开发人员协同完成。
现在我们先不谈优化的实施,我们先研究下如何优化,优化哪里,我们要找准数据库性能的瓶颈,有的放矢,这样才能让优化立竿见影。
如何找到mysql数据库得瓶颈呢?如何提前发现mysql数据库可能出现的瓶颈呢?这里又分两大方面。
        一方面是架构的设计和业务的类型,另一方面是通过观察mysql数据库的状态,好似中医的望闻问切。

关于第一个大的方面,需要注意的是。在业务前期,一定要确定业务的类型,是OLAP系统还是OLTP系统,数据量到底有多大,并发量到底有多大,查询居多,还是修改插入居多,需不需要支持事务和外键约束等信息。
         因为这些信息可以帮助我们在设计数据库架构,选取数据库引擎的时候有很大帮助。还有就是硬件层面的需求,到底多大业务,需要多少的硬件资源,硬件支援才压力承受范围内,可以得到很好的性能,如果超过了压力承受范围,那么性能会下降的很厉害,并且硬件的各个组成部分要匹配,不要出现某个部分太差,原因大家都应该知道的。
下面举两个简单的案例
案例一
、一个公司的数据库出现这样一个问题,一个myisam引擎的表,只有几百行的数据,但是table.myd文件却占了数十个G的空间,每次操作这个表的时候,速度就奇慢。
通过explain查看,又是正常的,这个问题在很多数据库上都存在,用oracle的话来说,就是高水位和块回收的问题。如果找到原因 optimize table tablename,优化一下表就可以了。
由于那个表操作很频繁,需要经常优化,这样就增加了DBA或者运维的工作量,这种问题其实在当初设计的时候,选用memcache引擎就比较合适,但是web应用的话还是比较适合memcached。
案例二、一个考试系统,当考试完成的时候,大家一交卷,服务器垮掉了,这是为什么呢?
因为大家都想要同时往一个表里写数据,但是等待表锁很严重,最后服务器挂掉了,所有数据未保存,这种情况在业务设计之初,就应该考虑到,使用innodb引擎,就可以解决这个问题。
应为innodb引擎室行锁对这种大并发的写入操作承受力很强。现在的考试系统已经比较完善,大部分是边做题,边提交数据库,就算这样,innodb引擎在这种应用还是很有优势的。
这些情况都还好,能够修复,不会对业务造成的影响一般,如果一个架构前期没有设计好,等到开发完成,投入使用了,发现有问题,再返回修改,修改量和测试的工作量是相当庞大的,结果就是浪费资金,浪费时间。

本文转自 fenghao.cn 51CTO博客,原文链接:http://blog.51cto.com/linuxguest/455251,如需转载请自行联系原作者

mysql优化思维引导一相关推荐

  1. mysql主键自增长_全面的MySQL优化面试解析

    本文概要 文章内图片有损,需要高清可以在公众号内回复"大图" 概述 为什么要优化 系统的吞吐量瓶颈往往出现在数据库的访问速度上 随着应用程序的运行,数据库的中的数据会越来越多,处理 ...

  2. awr报告分析 mysql_4个MySQL优化工具,帮你准确定位数据库瓶颈!

    作者:老王谈运维原文:https://www.toutiao.com/a6691523026984370699/ 对于正在运行的mysql,性能如何,参数设置的是否合理,账号设置的是否存在安全隐患,你 ...

  3. mysql字段简索引_3万字总结,Mysql优化之精髓

    本文知识点较多,篇幅较长,请耐心学习 MySQL已经成为时下关系型数据库产品的中坚力量,备受互联网大厂的青睐,出门面试想进BAT,想拿高工资,不会点MySQL优化知识,拿offer的成功率会大大下降. ...

  4. MySQL优化/面试,看这一篇就够了

    概述 为什么要优化 系统的吞吐量瓶颈往往出现在数据库的访问速度上 随着应用程序的运行,数据库的中的数据会越来越多,处理时间会相应变慢 数据是存放在磁盘上的,读写速度无法和内存相比 如何优化 设计数据库 ...

  5. 燕十八 mysql优化_布尔教育燕十八mysql优化视频资料分享

    目前数据库是大多数系统进行数据存储的基础组件,数据库的效率对系统的稳定和效率有着至关重要的影响:为了有更好的用户体验,数据库的优化显得异常重要.那么我们要从那些方面对我们的数据库进行优化呢?让我们在& ...

  6. MySQL优化器选错索引情况

    MySQL优化器选错索引情况 1. 优化器选错索引 2. 优化器的逻辑 3. 索引选择异常和处理 1. 优化器选错索引 之前MySQL架构以及执行sql查询语句介绍过MySQL优化器可以帮助我们优化s ...

  7. MySQL优化-一篇文章就够了(转发加收藏吧)

    关注我,一个仍存梦想的屌丝程序员,每天为你分享高质量编程博客. 回复 "代金券"  免费获取腾讯云和阿里云代金券 前言 说起MySQL的查询优化,相信大家收藏了一堆:不能使用SEL ...

  8. MySQL优化配置之query_cache_size

    原理 MySQL查询缓存保存查询返回的完整结果.当查询命中该缓存,会立刻返回结果,跳过了解析,优化和执行阶段.  查询缓存会跟踪查询中涉及的每个表,如果这写表发生变化,那么和这个表相关的所有缓存都将失 ...

  9. 小型网站到大型网站-Mysql优化

    2019独角兽企业重金招聘Python工程师标准>>> 背景 好的大型网站都是从小型网站慢慢演变来的,都不是一步就设计好的.现在的淘宝,03年创建的时候它也是只有一台服务器,使用的是 ...

最新文章

  1. 库克退休前的最后一战:不是苹果汽车而是……
  2. c语言unused variable错误,这个错误可能的原因是你忘了初始化变量
  3. bat no moudle named xxx
  4. 【Oracle 集群】Linux下Oracle RAC集群搭建之基本测试与使用(九)
  5. 网络语言对作文教学的冲击
  6. JavaScript入门(part9)--函数
  7. Java数组,Wat!
  8. 甲骨文中国裁员已定,补偿为N+6;VMware联手云平台合作伙伴AsiaPac,闪耀狮城;对标英伟达,寒武纪新货曝光……...
  9. python运行错误总结(按字母序)
  10. spfa算法_10行实现最短路算法——Dijkstra
  11. 微信停止服务印度手机号注册用户!
  12. 景驰无人车北京子公司上亿资金被冻结!潘思宁夺回法人身份
  13. c语言无线网络抓包程序,c语言实现抓包
  14. 阿里云天池 学习赛汇总(教学赛,零基础入门,长期赛)
  15. Oracle 12c中导入Oracle 11g的数据
  16. 微型计算机的拼音,微型计算机拼音
  17. python 二进制的数为啥带0b?,怎样去掉0b?
  18. 微信JS-SDK的PHP demo页面,解决Internal error 500错误
  19. 计算机网络技术教程第3版课后答案,《计算机网络技术基础教程》课后习题答案刘四清版3.doc...
  20. ExtJS初级教程之ExtJS Tree(一)

热门文章

  1. 爱说说技术原理方案的定选思考过程(一)
  2. Linux -nginx-源码安装
  3. docker 安装MongoDB以及设置用户
  4. 浏览器下载附件Content-Disposition
  5. (转载)一种根据纠偏数据对火星坐标进行完美拟合的方法
  6. 关于端口聚合或端口聚合称呼的误区
  7. ASP3.0给我们带来的新技术之一---DataShaping技术
  8. hadoop分布式集群搭建
  9. sumk跟spring boot的比较
  10. ionic之点击放大图片