mysql的一个简单的性能测试

来源:互联网 发布:java if while嵌套语句 编辑:程序博客网 时间:2024/05/26 07:29

mysql的一个简单的性能测试
 
1. 机器配置
    cpu:
        Intel(R) Pentium(R) D CPU 3.00GHz  
 
        内存:
        类型:  Kingston PC5300
        MemTotal:      2066620 kB

    硬盘:
       类型:希捷 酷鱼7200.9/ST3160812AS
       容量:160G
        转速:7200rpm
        缓存容量:8M    
 
2. 系统版本
         uname -a
         Linux master.test.com 2.6.9-34.ELsmp #1 SMP Fri Feb 24 16:54:53 EST 2006 i686 i686 i386 GNU/Linux

   Mysql版本:
        mysql  Ver 14.7 Distrib 4.1.12, for redhat-linux-gnu (i386) using readline 4.3
 
3. 测试单条记录的插入和读出

   

测试项目(单位:条)
Threads
表数
CPU
内存
time(ms)
speed
500W
1
1
90%
4%
690997
7235.9
500W
1
5
90%
4%
677359
7381.6
500W
5
5
99.99%
9.50%
348277
14356.4
500W
2
5
99.99%
9.50%
328023
15242.8
500W写到1000W
2
5
同上
同上
331168
15098.1
1000W
2
1
同上
同上
658227
15192.3
1000W中随机读3W
1
1
70%
13.60%
5726
5239.2
1亿(均分到5个表)
2
5
99.99%
10.00%
6949762
14389.1
1亿随机读3W
1
5
14.30%
3.30%
455516
65.9
1亿随机读2W
2
5
同上
同上
329657
60.7


   
    表的结构:
        CREATE TABLE `table0000`
            (
              `docid` bigint(20) unsigned NOT NULL,
              `ip` int(4) NOT NULL,
              `port` smallint(2) unsigned NOT NULL,
              `fileid` smallint(2) unsigned NOT NULL,
              `offset` int(4) unsigned NOT NULL,
              `length` int(4) unsigned NOT NULL,
              `attr` int(4) NOT NULL,
              `attr2` int(4) NOT NULL,
              PRIMARY KEY (`docid`),
              UNIQUE KEY `Index_2` (`docid`) USING BTREE
            ) ENGINE=MyISAM DEFAULT CHARSET=gbk


CPU显示可能有些问题,比如写一亿那行,双核的cpu应该显示150%之类的,100多才对。 不过,在top下看,已经是把两个核都用满了。 好像是只能显示到100%以下了。


结论:
    1. mysql的管理是以DB位单位的。想通过增加表的数目增加IO量是错误的。DB的索引应该是统一管理的。
    2. 最高写入速度是1.5W左右。 这个跟socket的长链接的最高握手次数是基本相同的的。
    3. mysql可以利用多核CPU的优势
    4. DB里边的数据量小的情况下,select单条的速度是5000条左右!
    5. 写入速度基本上是相同的。
6. 当数据量上亿以后,读出速度急剧下降。估计是在倒硬盘。


我把mysql的API封装了一下。简单的封装。不支持多字符集的应用。但是对我们的平时的应用估计应该够了!附在后边! 生成库以后,链接的时候只要链接我的头和库文件就好了。 不需要再链接mysql的。 我把它们隐藏了。呵呵!

下载地址:
    http://download.csdn.net/source/347569

测试的地方如有不对,或者代码有bug请告知。 我做的也是比较匆忙。一块讨论!

原创粉丝点击