mysql优化思维引导一

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介:
    一般数据库优化分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,如需转载请自行联系原作者
相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
14天前
|
关系型数据库 MySQL 索引
mysql 分析5语句的优化--索引添加删除
mysql 分析5语句的优化--索引添加删除
12 0
|
20天前
|
存储 关系型数据库 MySQL
轻松入门MySQL:数据库设计之范式规范,优化企业管理系统效率(21)
轻松入门MySQL:数据库设计之范式规范,优化企业管理系统效率(21)
|
20天前
|
存储 SQL 关系型数据库
轻松入门MySQL:加速进销存!利用MySQL存储过程轻松优化每日销售统计(15)
轻松入门MySQL:加速进销存!利用MySQL存储过程轻松优化每日销售统计(15)
|
20天前
|
存储 关系型数据库 MySQL
轻松入门MySQL:优化进销存管理,掌握MySQL索引,提升系统效率(11)
轻松入门MySQL:优化进销存管理,掌握MySQL索引,提升系统效率(11)
|
22天前
|
存储 SQL 关系型数据库
mysql优化一
mysql优化一
16 0
|
14天前
|
SQL 缓存 关系型数据库
mysql性能优化-慢查询分析、优化索引和配置
mysql性能优化-慢查询分析、优化索引和配置
79 1
|
20天前
|
存储 关系型数据库 MySQL
MySQL数据库性能大揭秘:表设计优化的高效策略(优化数据类型、增加冗余字段、拆分表以及使用非空约束)
MySQL数据库性能大揭秘:表设计优化的高效策略(优化数据类型、增加冗余字段、拆分表以及使用非空约束)
|
20天前
|
缓存 关系型数据库 MySQL
MySQL查询优化:提速查询效率的13大秘籍(合理使用索引合并、优化配置参数、使用分区优化性能、避免不必要的排序和group by操作)(下)
MySQL查询优化:提速查询效率的13大秘籍(合理使用索引合并、优化配置参数、使用分区优化性能、避免不必要的排序和group by操作)(下)
|
20天前
|
缓存 关系型数据库 MySQL
MySQL 查询优化:提速查询效率的13大秘籍(索引设计、查询优化、缓存策略、子查询优化以及定期表分析和优化)(中)
MySQL 查询优化:提速查询效率的13大秘籍(索引设计、查询优化、缓存策略、子查询优化以及定期表分析和优化)(中)
|
20天前
|
存储 关系型数据库 MySQL
MySQL 查询优化:提速查询效率的13大秘籍(避免使用SELECT *、分页查询的优化、合理使用连接、子查询的优化)(上)
MySQL 查询优化:提速查询效率的13大秘籍(避免使用SELECT *、分页查询的优化、合理使用连接、子查询的优化)(上)