MySQL调优-编译篇

 

安装时的优化
(以下测试数据都来自于mysql的官方网站)
不要用rpm或其他二进制方式安装
要用源代码自己编译
如果是奔腾系统,推荐用pgcc编译器
且使用-O6的编译参数
这样编出来的mysql比用gcc2.95的要快1%
仅用用得着的字符集编译MySql
mysql目前支持多达34种不同的字符集(mysql4.1.11)
但我们常用的也无非就是latin1、gbk、utf8这三种而已
所以一般用编译参数
–with-charset=latin1 –with-extra-charsets=gbk,utf8
就行
用静态方式编译mysqld
用编译参数
–with-mysqld-ldflags=-all-static
在linux下将会提高13%的速度
编译时不要用参数–with-debug或者是–with-debug=all
–with-debug=all致使几乎所有的查询慢20%,有的更甚
仅是–with-debug也会带来15%的查询速度下降
如果编译的时候加了–with-debug=all参数
那么可以用–skip-safemalloc来启动服务器
这样速度影响跟–with-debug差不多
在跑在x86上的linux下用gcc不用frame pointers编译
也就是用参数-fomit-frame-pointer
或者是-fomit-frame-pointer -ffixed-ebp
这样会使mysqld快1-4%
用命令strip mysqld strip一下mysqld的二进制文件将会提高4%的速度
用unix socket来连本机的mysql服务器比用tcp/ip要快7.5%
(unix下,连主机名localhost缺省用的是unix socket)
所以仅从本机来连的mysql服务器
可以用参数–skip-networking来启动(将不监听3306端口)
用tcp/ip来连远程的mysql服务器比连本地的mysql服务器要慢8-11%

慎重使用secure connection(所有数据都会被ssl支持加密)
因为这样会比不加密慢55%

数据库设计时的优化
不要用ISAM类型表
ISAM是mysql最早的表类型,也是非事务性表类型
现在已经被MyISAM表类型所取代
MySQL4.1的版本里虽然还保留的有ISAM表类型
但已经不推荐使用
从Mysql5开始,ISAM表类型已被删掉
Mysql从3.23开始引入MyISAM和HEAP表类型
MyISAM用来提高ISAM表类型性能
HEAP就是所谓内存表
Mysql从3.23.25开始引入MERGE表类型
这种表类型允许把一些MyISAM表当作一个表来操作
MyISAM、HEAP、MERGE这三种表类型都是非事务性表类型
注:HEAP表类型已改名为MEMORY表类型
InnoDB和BDB是所谓的事务性表类型
也就是支持回滚的表类型
大约从Mysql3.23后面的一些版本开始被支持
从Mysql4.0开始被缺省支持
EXAMPLE表类型从Mysql4.1.3开始被引入
他其实没什么用
既不能存数据
也不能从里面取数据
只能做为演示用:)
NDB Cluster表类型用来实现把一个表分布到不同的计算机上
他从Mysql4.1.2的源代码发布和
Mysql-max4.1.3二进制发布里开始可用
ARCHIVE表类型从Mysql4.1.3开始被引入
他用来存储没有索引的巨大数目的数据在很小的脚印(footpring?)里
CVS表类型从Mysql4.1.4开始被引入
他用来存储用逗号分隔的格式的文本到文本文件里
FEDERATED表类型从Mysql5.0.3开始被引入
他用来在远程的服务器上存储数据
目前仅支持Mysql数据库
且用的是Mysql C Client API
非事务性表的优点:
速度快、存储省空间、update时省内存

Mysql服务器的优化
如果内存足够大,建议取消swap区
因为有些系统是那怕你还有free的内存他都要使用swap区的
使用参数–skip-external-locking来启动mysql
除非你在一台机器上跑着多个Mysql服务器
而且还存取同样的数据文件

可以使用参数–skip-name-resolve来启动mysql服务器
不过这样的话在grant权限给某台机器的时候就只能使用ip地址了

可以用命令mysqld –verbose –help来看mysql server的当前参数值
4.1版本的mysql可以忽略–verbose
如果mysql正在跑着
show variables显示服务器信息
show status显示系统状态和一些统计学数据
这两种信息也可以通过命令
mysqladmin variables和mysqladmin extended-status来获得
这些系统参数里最重要的是key_buffer_size和table_cache

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值