首页 | 资讯动态 | linux基础 | 系统管理 | 网络管理 | 编程开发 | linux数据库 | 服务器技术 | linux相关 | linux认证 | 嵌入式 | 下载中心 | 专题 | linux招聘 | HR | 镜像
OKLinux中文技术站
·设为首页
·加入收藏
·联系我们
系统管理: 中文环境 系统管理 桌面应用 内核技术 | Linux基础: 基础入门 安装配置 常用命令 经验技巧 软件应用 | Linux数据库: Mysql Postgre Oracle DB2 Sybase other
网络管理: 网络安全 网络应用 Linux服务器 环境配置 黑客安全 | 编程开发: PHP CC++ Python Perl Shell 嵌入式开发 java jsp | PHP技术: PHP基础 PHP技巧 PHP应用 PHP文摘
搜索中心 Linux招聘 Linux专题 Apache | Linux相关: 硬件相关 Linux解决方案 Linux认证 企业应用 其它Unix | 相关下载: 资料下载 参考手册 开发工具 服务器类 软路由 其它
 技术搜索:
会员中心 注册会员 高级搜索  
  → 当前位置:首页>linux数据库>其他>正文

提升MySQL性能可用思路和方案的技术分析

http://www.oklinux.cn  2008-06-06  linuxidc   会员收藏  游客收藏  【 】 
您查看的文章来源于http://www.oklinux.cn

当MySQL成为越来越多的web2站点的选择的DB的时候,当站点越来越大,流量越来越多,用户越来越多的时候,数据库往往第一个成为系统的瓶颈,如何提升DB的性能成为系统成败的关键点,本文只是从自己的认识上说说可以从几个方面提升MySQL的性能,以及可以采取的扩展方式。但是不会详细的阐述,详细的说明和操作,分析方法以后有时间再仔细分享。

一、选择合适的数据库存贮引擎

MySQL支持的引擎很多,例如MyISAM,MEMORY,InnoDB等等类型,每个类型试用的场景是不一样的,恰当的选择存储引擎可以节省你不少时间,详细的介绍你可以参考”第15章:存储引擎和表类型“。

二、优化SQL语句

不要以为SQL语句关系不大,按照以往的经验,往往几个畸形的SQL就可以拖垮一个DB,决定不是危言耸听,在从系统优化和DB优化及其扩展之前,请仔细检查系统中用到的SQL,先解决SQL可能带来的问题,而经验是,做好这步,就可以解决很多初期的性能问题。

三、建立索引

这和前面的SQL优化有一定的联系,仔细查看你的SQL语言,尽可能的优化他,然后建立必须的索引,千万不要忽视了索引的威力,我们曾经有过测试,2W条的基本数据,生成页面,没有索引前,推算其全部生成需要的时间是81个小时,而加上索引后,只需要12分钟,多大的性能提升,各位可以自己那计算器粗略的算算。

四、建立分区&表空间

很多人以为只有Oracle才有表空间,分区这些东西,不想到MYSQL中也有类似的东西吧,尽管这个东西是mysql5才引入的,尽管其还不是很成熟,但是毫无疑问,这是一个好的信号,在我们使用MYSQL的时候就有了更多的方案来提升性能了。

分区一般分为水平分区和垂直分区,MYSQL目前只支持水平分区,有RANGE,LIST,HASH,KEY等等分区方式,详细说明以后再说,你可以参考”第18章:分区“,"通过分区(Partition)提升MySQL性能"等文章。

表空间的相关话题,可以参考”第17章:MySQL簇“,不在赘述。

五、调整MYSQL和系统参数

这个方案是伴随着整个性能提升过程的,你的不时的调整参数以得到更好的性能,这个比较复杂,没有啥成文的规定,都是靠经验或者实践得到的。

六、集群或者proxy

到这里为止,单机的MYSQL基本上可以优化调整的都涉及到了,如果这个时候还是顶不住压力,该考虑水平扩展或者垂直扩展了,垂直扩展比较容易,只要针对单机的性能得到瓶颈的所在,增加CPU或者内存或者换比较强劲的设备就可以很快得到立竿见影的效果。

但是垂直扩展能力有限,不可能得到无限级的扩展,风险也比较大,除了垂直扩展,大家选择较多的是水平扩展,也就是通过增加服务器,无限的得到性能的扩展,当然这个里面内容是很多的,如何做到数据库的备份,同步等都是需要考虑和解决的问题,而且还要考虑这么多机器间的数据重复成都等问题;除此之外,还有可能将数据库缓存到memcached或者使用mysql proxy等实现连接池之类的方案,都是需要考虑和抉择的。

以上每个分类都是个大的话题,这么一篇文章只是说明了优化的思路和基本流程,其中涉及到很多东西,例如诊断和分析等都是很有技术含量的,我们下次会一个专题一个专题的仔细分析,力求将MYSQL的性能达到尽可能的榜。


上一篇:小笔记本上的Ubuntu正式亮相   下一篇:MySQL恢复时二进制数据太大出现异常的解决

收藏于收藏夹】 【评论】 【推荐】 【打印】 【关闭
相关文档
·MySQL恢复时二进制数据太大出现异常的解决
·Linux或windows下关于EXP-00091错误解决方法
·一些常用的MySQL命令脚本笔记
·Oracle安装后8080和80端口被占用的解决办法
·向MySQL插入数据乱码解决办法
·Ubuntu下编译MySQL笔记
·MySQL实用相关知识3则
·Linux环境下修改MySQL端口
·MySQL远程连接用户实例解
·MySQL磁盘满repair多个表问题的解决
·MySQL DNS反解析过慢问题的解决办法
·Windows下的换行回车与Linux的回车
·vb连接MySQL遇到的问题解决方法
·snort连不上数据库MySQL原因总结
·Linux下Oracle数据库,dbstart持续不动,数据库无法启
·找不到mysql.sock的解决方案
发表评论
密码: 匿名评论
评论内容:

(不超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规)
 
  最新文档
·Oracle 10g for solaris准备工作和实例
·Oracle主键的设置
·Oracle查询表、视图、序列等信息查询
·Oracle笔记之简单查询、限定查询和排序
·Oracle物理结构概述
·Oracle中nul()函数
·Oracle数据库归档模式的切换
·Oracle 10g 编程艺术
·在RadHat 5上安装Oracle 10g
·Oracle和MySQL对比
·采用Oracle的dbms_obfuscation_toolkit
·Oracle中的Raw类型解释
  阅读排行
·MySQL中文乱码解决方案集锦
·Oracle面试题及答案整理
·Linux下安装Oracle数据库完整笔记
·MySQL导入导出.sql文件步骤
·Oracle10g RAC for Linux配置全过程
·Oracle建表过程初学
·Linux平台下配置MySQL主从复制
·Linux系统下启动MySQL的命令及相关知识
·Oracle 建立临时表语法及使用技巧
·Oracle数据库里查看表空间使用状况
·Linux下Oracle sqlplus中文显示乱码的
·Linux下安装Oracle客户端
·MySQL服务器上添加一个允许远程访问的
·手工配置Oracle 10G Enterprise Manage
·Linux平台下启动oracle 11g EM控制台
网摘收藏: