`
簡單從泚銷夨
  • 浏览: 72929 次
  • 性别: Icon_minigender_1
  • 来自: 文一西路969号
社区版块
存档分类
最新评论

mysql简单优化

 
阅读更多

      对于互联网开发都少不了和数据库接触,sql server,mysql,oracle,这是几个主流的数据库了,其中mysql又是这里面的主流(除了一些核心数据需要oracle的支持),所以我接触最多的数据就是mysql。

      我不是dba,我只是一个小小的rd,所以以我现在的了解的去简单介绍下怎么优化mysql的io,互联网开发的RD几乎都知道一个网站流量大了,其中最大的瓶颈大部分都是在IO上,其中数据库涉及到的IO又是最平凡的。

 在这里我们就认为整个系统的瓶颈在mysql上,接下来我们准备怎么优化?

   

1.选择正确的引擎,建表的时候特别要注意需要合适的数据库引擎(ISAM,MyISAM,HEAP,InnoDB),对于RD接触最多的就是myisam和innodb这两个引擎。

myisam:MyISAM是MySQL的ISAM扩展格式和缺省的数据库引擎。除了提供ISAM里所没有的索引和字段管理的大量功能,MyISAM还使用一种表格锁定的机制,来优化多个并发的读写操作,其代价是你需要经常运行OPTIMIZE TABLE命令,来恢复被更新机制所浪费的空间。MyISAM还有一些有用的扩展,例如用来修复数据库文件的MyISAMCHK工具和用来恢复浪费空间的 MyISAMPACK工具。MYISAM强调了快速读取操作,这可能就是为什么MySQL受到了WEB开发如此青睐的主要原因:在WEB开发中你所进行的大量数据操作都是读取操作。所以,大多数虚拟主机提供商和INTERNET平台提供商只允许使用MYISAM格式。MyISAM格式的一个重要缺陷就是不能在表损坏后恢复数据。

innodb:InnoDB数据库引擎都是造就MySQL灵活性的技术的直接产品,这项技术就是MYSQL++ API。在使用MYSQL的时候,你所面对的每一个挑战几乎都源于ISAM和MyISAM数据库引擎不支持事务处理(transaction process)也不支持外来键。尽管要比ISAM和 MyISAM引擎慢很多,但是InnoDB包括了对事务处理和外来键的支持,这两点都是前两个引擎所没有的。如前所述,如果你的设计需要这些特性中的一者 或者两者,那你就要被迫使用后两个引擎中的一个了。

对于选择什么样的引擎请看:http://www.cnblogs.com/sopc-mc/archive/2011/11/01/2232212.html

      

 2.选择正确是字段类型,这对我们以后的索引和数据量很大的时候都有好处,比如:日期2013-04-28我们可以用long类型也可以用String类型,当有100w数据量的时候,使用long类型的需要磁盘的大小为8字节*1000000=8000000byte,使用String则可以认为是10个char,需要的磁盘大小为:2字节*10*1000000=20000000byte,如果加上年月日那相差更大。

 

 3.创建表的时候,注意业务的需要,劲量少连表查询,那设计表的结构的时候可以有冗余,数据量比较大的时候连表查询很影响性能。

现在我们就可以用刚才创建的表了,增删改查.....while(增删改查),突然有一天mysql堵了很多链接不释放,打开慢日志查询,发现了很多的sql都很慢,怎么办呢!sql优化不是一时半会能优化好的了,还容易出错,有什么办法呢?

 

 4.添加索引,索引对于数据库优化可以说是万金油了,但对于添加索引,我们也要注意很多地方,哪里加了索引带来了很大的速度提升,哪里加了反而影响了性能,对于怎么添加索引,异步到:http://www.cnblogs.com/hustcat/archive/2009/10/28/1591648.html

现在好了,终于缓过来了,网站又刷刷的了,又过了一段时间,网站的列表页打开又很慢了啊,看看数据库中的表的记录也不是太多啊,那看看sql能不能优化,http://database.51cto.com/art/201006/205790.htm 优化后感觉好多了。过了一些时间了,同样的问题一样出现了,由于这段时间的注册用户越来越大,数据量也越来越大,一个表里面都是以千万级的了,怎么办?

 

 5.分库分表,怎么分库分表,这个网上有许多案例,我就不详细介绍了,有一天,客服MM打电话过来说用户反馈网站打不开了,登录到后台一看,原来数据库的那个磁盘坏了,这么大的事只能贴个网站维护了,去修磁盘了,公司老板开会说这次故障影响太大,你们的kpi已经没了,多么痛苦的消息啊!下次坚决不能再出现这个问题了,搞个主备吧!搬了一台机子,搞了个实时同步(实际上做不到实时同步了,有时间延迟),当master出问题,可以把备份的机器当master去用,可磁盘也不是那么容易损坏的了,这样是不是备份的那台机器太浪费了,想了想,两台机器可以搞个读写分离.......

 

 

 时间过的真快.....下次继续吧!

8
2
分享到:
评论
1 楼 lvwenwen 2013-05-02  
mysql简单优化

相关推荐

    MySQL架构执行与SQL性能优化 MySQL高并发详解 MySQL数据库优化训练营四期课程

    MySQL架构执行与SQL性能优化-MySQL高并发详解课程,课程的目标简单明确,核心就是MySQL的性能优化与高并发。课程内容进行了精华的浓缩,有四大内容主旨,MySQL架构与执行流程,MySQL索引原理详解,MySQL事务原理与...

    mysql数据库优化方案(值得学习)

    简单描述数据库优化方案,以及数据库一些常用的操作,包括一些简单的查询语句,函数使用,合适学习mysql的读者。 简单描述数据库优化方案,以及数据库一些常用的操作,包括一些简单的查询语句,函数使用,合适学习...

    MySQL优化器概述

    关于mysql查询优化的讲解,简单明了!

    mysql性能优化综述

    简单介绍下可以从哪些方面优化

    MySQL的or、in、union与索引优化

    一:union all 肯定是能够命中索引的 二:简单的in能够命中索引 三:对于or,新版的MySQL能够命中索引 四、对于!=,负向查询肯定不能命中索引 五、其他方案

    MySQL调优及mysql性能优化.doc

    Mysql性能优化就是通过合理安排资源,调整系统参数使MySql运行更快、更节省资源。 不难发现,原来mysql调优其实就是从时间、空间这两个方面来进行优化 mysql怎么调优 第一:选择最合适的字段属性。 mysql在创建...

    mysql优化/pdf

    因此,使用最新版本的MySQL是提高性能的一个简单方法。 ## 2. 为MySQL服务器配置合适的硬件 MySQL的性能很大程度上取决于服务器的硬件配置。确保服务器具有充足的内存、处理器和磁盘空间会提高MySQL的性能。 ## 3...

    MySQL 8.0 参考手册教程pdf

    本章通过展⽰如何使⽤mysql客⼾端程序创建和使用简单的数据库来提供 MySQL 的教程介绍。 mysql (有时称为“终端监视器”或简称“监视器”)是⼀个交互式程序,使您能够连接到 MySQL 服务器、运⾏查询并查看结果。 ...

    简单实现MySQL服务器的优化配置方法

    公司网站访问量越来越大,MySQL自然成为瓶颈,因此最近我一直在研究 MySQL 的优化,第一步自然想到的是 MySQL 系统参数的优化,作为一个访问量很大的网站(日20万人次以上)的数据库系统,不可能指望 MySQL 默认的...

    Mysql性能优化方案分享

    更为麻烦,同样的设置,在不同的环境下 ,由于内存,访问量,读写频率,数据差异等等情况,可能会出现不同的结果,因此简单地根据某个给出方案来配置mysql是行不通的,最好能使用status信息对mysql进行具体的优化。...

    mysql数据库优化方案

    简单描述数据库优化方案,以及数据库一些常用的操作,包括一些简单的查询语句,函数使用等等

    《MySQL 性能优化》之理解 MySQL 体系结构

    作为专栏文章《MySQL 性能优化》的第一篇,本文介绍 MySQL 的服务器体系结构,包括物理结构、逻辑结构以及插件式存储引擎。 实例和数据库 我们通常所说的 MySQL 数据库服务器由一个实例(instance)以及一个数据库...

    MySql教程--详细介绍了如何安装、管理、备份、维护和优化一个MySQL系统

    第一章简单介绍了MySQL的历史、特点,同时对SQL的语法进行了简单的介绍。如果读者对第一章的内容不能很好的掌握,可以略过不了解的内容,在阅读二、三章之后重新理解其中内容。第二章介绍了如何安装一个MySQL系统。...

    php+mysql查询优化简单实例

    主要介绍了php+mysql查询优化简单实例,分析了php+mysql程序设计中关于SQL语句优化查询的技巧,对于提高查询效率有一定参考借鉴价值,需要的朋友可以参考下

    MySQL数据库运维.pdf

    技术成就梦想 @ DataGuru 专业数据分析社区 网址:edu.dataguru.cn 1 MySQL 数据库运维 MySQL 数据库作为世界上最流行的开源数据库,以简单、易用、开源等特点, 收到互联网行业的推崇。随着去 IOE 运动的如火如荼,...

    MySQL索引优化的实际案例分析

    Order by desc/asc limit M是我在mysql sql优化中经常遇到的一种场景,其优化原理也非常的简单,就是利用索引的有序性,优化器沿着索引的顺序扫描,在扫描到符合条件的M行数据后,停止扫描;看起来非常的简单,但是...

    MySQL教程02--详细介绍了如何安装、管理、备份、维护和优化一个MySQL系统

    第一章简单介绍了MySQL的历史、特点,同时对SQL的语法进行了简单的介绍。如果读者对第一章的内容不能很好的掌握,可以略过不了解的内容,在阅读二、三章之后重新理解其中内容。第二章介绍了如何安装一个MySQL系统。...

    MySQL优化方案参考

    本文整理了一些MySQL的通用优化方法,做个简单的总结分享,旨在帮助那些没有专职MySQL DBA的企业做好基本的优化工作,至于具体的SQL优化,大部分通过加适当的索引即可达到效果,更复杂的就需要具体分析了。...

    mySql优化方法简单≈易学

    第一方面:30种mysql优化sql语句查询的方法 1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。  2.应尽量避免在 where 子句中使用!=或操作符,否则将引擎放弃使用索引而...

Global site tag (gtag.js) - Google Analytics