zoukankan      html  css  js  c++  java
  • MySQL测试报告

    硬件配置:

    3台服务器:192.168.23.168,  192.168.23.169,  192.168.23.170

    硬盘:230G

    内存:16G

    Linux内核:Linux geoserver.csdb.cn 2.6.32-131.17.1.el6.x86_64 #1

    操作系统:Scientific Linux release 6.1 (Carbon)

    软件工具:

        Mysql5.1 (存储引擎Myisam)

    Mysqlslap(测试工具)

    数据库和表

    CREATE DATABASE myisamtest;

    CREATE TABLE `t1_disk` (

    `f1` int(10) NOT NULL AUTO_INCREMENT,

    `f2` datetime DEFAULT NULL,

    `f3` varchar(200) DEFAULT NULL,

    PRIMARY KEY (`f1`)

    ) ENGINE=myisam

    AUTO_INCREMENT=1000001 DEFAULT CHARSET=gbk;

    字段f1有索引,f3无索引

    数据记录:

             1亿条记录

             2亿条记录

    一 数据插入测试

    测试场景:

    定义一个插入10000条记录的存储过程,如下:

    DELIMITER $$

    DROP PROCEDURE IF EXISTS `p_test_t1_disk` $$

    CREATE DEFINER=`root`@`%` PROCEDURE `p_test_t1_disk`()

    BEGIN

    declare i int default 0;

    test: loop

    insert into ndbtest.t1_disk(f2,f3) values(sysdate(),md5(rand()));

    set i=i+1;

    if i>=10000 then

    leave test;

    end if;

    end loop;

    END $$

    DELIMITER ;

    然后使用测试工具mysqlslap执行测试:

    mysqlslap --concurrency=200 --iterations=1 --query="call myisamtest.p_test_t1_disk;" --number-of-queries=10000 -uroot -p1234 -h 192.168.23.168 --create-schema=myisamtest

    测试用例

    1亿

    2亿

    开200个并发线程同时插入数据

    每线程执行50次存储过程(200*50*10000记录)

    用时10212.541 seconds(约2小时50分)

    每线程执行100次存储过程(200*100*10000记录)

    用时20125.405 seconds(约5小时35分)

    二 数据查询单线程测试

    直接执行测试例SQL语句测试:

    测试用例

    1亿

    2亿

    select * from t1_disk where f1=70000000

    在int类型主键字段上做查询

    <100ms

    <100ms

    select * from t1_disk limit 100 offset 70000000

    在int类型主键字段上做分页查询

    12.516s

    13.141s

    select * from t1_disk where

    f3='060a5524f33ac10345ce187df848c56e'

    在varchar类型字段上做查询,查询某条记录

    19.625s

    41.094s(因为没有索引,应该是把数据表从头到尾扫描了一次,因为查询任何一条记录时间都跟这差不多)

    select * from t1_disk where f3 like '42663%'

    返回101条记录,用时19.843s

    返回187条记录,用时42.656s

    select * from t1_disk where f3 like 'f45ce016bb84dac06%'   条件字串加长

    返回1条记录,用时19.391s

    返回1条记录,用时40.953s

    select * from t1_disk where f3 like '%16bb84%'

    返回167条记录,用时46.438s

    返回330条记录,用时100.859s

    结论:

    1. f1是主键字段,做了唯一索引,1亿条和2亿条的查询区别不大。
    2. f3字段是varchar类型,没有做索引,每次查询都把数据表从头到尾扫描了一次,因为查询任何一条记录(无论第1条或者最后一条记录)时间都差不多。
    3. 前缀like查询(‘aaa%’)跟精确查询性能差不多,都是从头到尾扫描一次,而且条件字符串加长性能不受影响。
    4. 双端like查询(‘%aaa%’),性能下降很快。

    三 数据查询并发测试

    使用测试工具mysqlslap执行测试:

    mysqlslap --concurrency=100 --iterations=1 --query=" select * from t1_disk where f1=7000000

    ;" --number-of-queries=100 -uroot -p1234 -h 192.168.23.168 --create-schema=myisamtest

    测试用例

    1亿

    2亿

    select * from t1_disk where f1=70000000

    100并发查询

    <100ms

    458ms

    select * from t1_disk limit 100 offset 70000000

    100并发查询

    返回100条记录,用时319.812s

    返回100条记录,用时313.973s

    select * from t1_disk where

    f3='060a5524f33ac10345ce187df848c56e'

    100并发查询

    519.735s

    1014.375s

    select * from t1_disk where f3 like '42663%'

    100并发查询

    返回101条记录,用时518.078s

    返回187条记录,用时1068.359s

    select * from t1_disk where f3 like '%16bb84%'

    100并发查询

    返回167条记录,用时1188.484s

    返回330条记录,用时2417.360s

    结论:按主键精确查询性能与单线程比较变化不大,主健分页、varchar查询性能下降厉害。

    四 数据双机集群测试

    将192.168.23.168设置在master机,192.168.23.169设置成slave机,调用插入测试语句

    mysqlslap --concurrency=100 --iterations=1 --query="call myisamtest2.p_test_t1_disk;" --number-of-queries=1000 -uroot -p1234 -h 192.168.23.168 --create-schema=myisamtest2

    100个并发在master机上插入1000万条记录,用时1932.188秒

    同时,slave机同步插入了1000万记录,几乎没有延时

  • 相关阅读:
    Delphi XE10编写的《海康摄像机SDK测试DEMO》
    Delphi XE10编写的《开放式公路收费系统》
    Delphi XE7 用indy开发微信公众平台所有功能,可刷阅读,可刷赞,可加推广(除微支付)
    Delphi XE7 用indy开发微信公众平台(9)- 高级群发接口
    Delphi XE7 用indy开发微信公众平台(8)- 自定义菜单
    Delphi XE7 用indy开发微信公众平台(7)- 用户管理
    Delphi XE7 用indy开发微信公众平台(6)- 被动回复用户消息
    Delphi XE7 用indy开发微信公众平台(5)- 接收事件推送
    Delphi XE7 用indy开发微信公众平台(4)- 接收普通消息
    Delphi XE7 用indy开发微信公众平台(3)- 验证消息真实性
  • 原文地址:https://www.cnblogs.com/moss_tan_jun/p/7711052.html
Copyright © 2011-2022 走看看