构建高性能的MYSQL数据库(二) 把那些瓶颈给找出来
一、从哪里入手
当一台MYSQL服务器搭建完成并可以正常运行时,是不是我们的脚步就停止了,自以为可以开始使用了,对专业人士来说其实还需要更多的相关优化和设置。怎么去优化?怎么去设置?首先我们得找到它的瓶颈,我现在所了解的有两种方法,一是基准测试,二就是程序分析,他们有着密切的联系,因为有时是一样的。通过对你的MYSQL性能做基准测试,查找那部分存在问题需要优化,那部分则运行正常,相反程序分析则帮助我们统计MYSQL运行的花费时间和消耗资源。换句话说:基准测试是MYSQL的各项是否发挥出最大的性能,程序分析则是为什么MYSQL的这个选项会占用更多的性能。
二、基准测试
针对MYSQL的基准测试有两种测试方法,一个是整站式测试,另一个则是单一组件测试。整站式测试包括除MYSQL以外的其他和MYSQL所管理的程序,如WEB程序,操作系统,磁盘I/O等等。单一组件是专门针对MYSQL做的测试,包括增删改查速度测试,不同存储引擎测试等等。下面我们将介绍几款相关的基准测试工具:
1、http_load(整站式测试)
http_load是运行在linux操作系统上的一个针对网站做压力测试的开源工具。
下载地址:http://www.acme.com/software/http_load/http_load-12mar2006.tar.gz
http_load以并行复用的方式运行测试网站服务器的吞吐量和负载,它可以以单个进程去运行,这样不会搞死你的客户端,这也是和大部分压力测试工具所不同的一点,还有它还可以测试https页面。
开始安装:
#wget http://www.acme.com/software/http_load/http_load-12mar2006.tar.gz
# tar xvzf http_load-12mar2006.tar.gz
# cd http_load-12mar2006
# make
首先创建一个urls.txt文件,里面加入要测试的URL地址,以换行分割,这里需要注意一点就是因为我们讲的是测试MYSQL,所以你的页面一定要存在MYSQL的操作语句,而且要符合你的标准网站的数据量,如下:
http://killker.com/blog/index.php
http://killker.com/blog/?p=114
http://killker.com/blog/?p=102
现在我们开始测试每秒所能承受的页面访问量(吞吐量,单位时间内的事物处理能力)
#./http_load -paraller 5 -fetches 100 urls.txt
以上命令意思是同时使用5个进程,随机
相关文档:
1.首先得对mysql 里面的参数进行介绍下:
procedure--in:输入参数,out输出参数,inout这个就不用说了,大概也猜到了
declare:声明变量.记主, ......
lect ASIN('foo');
-> 0.000000
ATAN(N)
返回N的反正切值
mysql> select ATAN(2);
-> 1.107149
mysql> select ATAN(-2);
-> -1.107149
ATAN2(X,Y)
返回2个变量X和Y的反正切(类似Y/X的反正切,符号决定象限)
mysql> select ATAN(-2,2);
-> -0.785398
mysql> ......
有时候为了方便,利用event/trigger调用系统外部命令,可因为安全问题,mysql自身并没有提供相关命令,这里提供个调用系统命令的自定义函数mylab_sys_exec
so文件下载:mylab_sys_exec.so ( mysql5.1.34 测试通过)
加载:
CREATE FUNCTION mylab_sys_exec RETURNS INTEGER SONAME "mylab_sys_exec.so";
使用:
SELECT myl ......
1、创建一个数据库
create database 数据库名
2、创建一个数据表
create table 数据表名(
字段名 类型(长度),
字段名 类型(长度),
字段名 类型(长度),
字段名 类型(长度),
......
字段名 类型(长度)
);
3、查看数据表结构
describe 数据表名;
4、插入一条新记录
insert into 数据表名 values(值1,值2,....值n ......
·/etc/my.cnf是默认的MySQL配置文件。应该对这个文件配置修改。它是为学习目的而设计的。
·my-small.cnf是为了小型数据库而设计的。不应该把这个模型用于含有一些常用项目的数据库。
·my-medium.cnf是为中等规模的数据库而设计的。如果你正在企业中使用RHEL,可能会比这个操作系统的最小RAM需求(25 ......