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开始被引入
他其实没什么用
既不
相关文档:
有2个不同的方法增加用户:通过使用GRANT语句或通过直接操作MySQL授权表。比较好的方法是使用GRANT语句,因为他们是更简明并且好像错误少些。
下面的例子显示出如何使用MySQL客户安装新用户。这些例子假定权限已缺省被安装。这意味
着为了改变,你必须在MySQL正在运行同一台机器上,你必须作为MySQL
ro ......
前一篇文章中说到了LOAD命令,这里就来详细的给自己,顺便也给大家讲解下LOAD命令和批处理的数据导入功能。用的时候感觉MySQL用起来真的比较滋润。。。。
批处理导入文件,从sql文件导入数据到数据库中 ,批处理是一种非交互式运行mysql程序的方法, ......
他将多个表在逻辑上当作一个表来查询。他建立后有两个文件,
.frm 表结构定义
.mrg union表的名字清单
两个基本表:
CREATE TABLE TEST_MERGE_1(
ID INT(5) NOT NULL,
VALUE VARCHAR(100) NOT NULL,
PRIMARY KEY(ID)
)
CREATE TABLE TEST_MERGE_2(
ID INT(5) NOT N ......
2009年10月30日 星期五 22:53
1, 查看MySQL
服务器配置信息
mysql> show variables;
mysql> show variables;
2, 查看MySQL服务器运行的各种状态值
mysql> show global status;
mysql> show global status;
3, 慢查询
mysql> show variables like '%slow%';
+--------------- ......
最近一直在进行Penrose连接Mysql的尝试,可总是提示无法连接到Mysql,无论是检查端口是否开启,设置Mysql远程访问权限等都不管用,后来在Penrose的官网找到一个建立样例数据库及设置远程连接的文档,没想到一举成功,痛快啊!
下面就把文档和大家共享一下!(是英文,大家就凑合着看下吧!因为最近搞Penrose太累了, ......