MySQL基准测试套件Benchmark安装DBI组件过程分享

 更新时间:2014年07月17日 09:19:35   投稿:junjie  
这篇文章主要介绍了MySQL基准测试套件Benchmark安装DBI组件过程分享,,需要的朋友可以参考下

今天打算用MySQL自带的基准测试套件(Benchmark Suite)来测试一下插入性能,结果出现错误:

复制代码 代码如下:

# 还是交代一下环境吧
[root@beanvm ~]# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 6.2 (Santiago)
[root@beanvm ~]# uname -a
Linux beanvm 2.6.32-220.el6.i686 #1 SMP Wed Nov 9 08:02:18 EST 2011 i686 i686 i386 GNU/Linux
# 下为报错
[mysql@beanvm ~]$ cd /usr/local/mysql/sql-bench/
[mysql@beanvm sql-bench]$ ./test-insert --server=mysql --user=root --password=mysql --log
Can't locate DBI.pm in @INC (@INC contains: /usr/local/lib/perl5 /usr/local/share/perl5 /usr/lib/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib/perl5 /usr/share/perl5 .) at ./test-insert line 33.
BEGIN failed--compilation aborted at ./test-insert line 33.

很显然这里缺少DBI组件,它是perl连接数据库的重要接口,先来检查一下这个包是否存在

复制代码 代码如下:

[mysql@beanvm ]$ rpm -qa |grep perl-DB

可以直接用yum来安装,这里我用的安装包的形式,幸运的是,这些包在RHEL6的安装介质中都可以找到,只要安装下面两个包就可以了:

复制代码 代码如下:

[root@beanvm Packages]# rpm -ivh perl-DBI-1.609-4.el6.i686.rpm
warning: perl-DBI-1.609-4.el6.i686.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY
Preparing...                ########################################### [100%]
   1:perl-DBI               ########################################### [100%]
[root@beanvm Packages]# rpm -ivh perl-DBD-MySQL-4.013-3.el6.i686.rpm
warning: perl-DBD-MySQL-4.013-3.el6.i686.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY
error: Failed dependencies:
        libmysqlclient.so.16 is needed by perl-DBD-MySQL-4.013-3.el6.i686
        libmysqlclient.so.16(libmysqlclient_16) is needed by perl-DBD-MySQL-4.013-3.el6.i686

在安装perl-DBD-MySQL包时,我们发现提示缺失libmysqlclient.so.16文件,如果是经常安装MySQL的话,应该知道libmysqlclient.so是一个MySQL数据库中必备的库文件,会不会是没有链接到呢?

复制代码 代码如下:

[root@beanvm ~]# ls -l /usr/lib/libmysqlclient.so.16*
[root@beanvm ~]# ls -l /usr/local/mysql/lib/
total 147260
-rw-r--r--. 1 mysql mysql  13322694 Feb 15 14:30 libmysqlclient.a
lrwxrwxrwx. 1 mysql mysql        16 Feb 15 14:39 libmysqlclient_r.a -> libmysqlclient.a
lrwxrwxrwx. 1 mysql mysql        17 Feb 15 14:39 libmysqlclient_r.so -> libmysqlclient.so
lrwxrwxrwx. 1 mysql mysql        20 Feb 15 14:39 libmysqlclient_r.so.18 -> libmysqlclient.so.18
lrwxrwxrwx. 1 mysql mysql        24 Feb 15 14:39 libmysqlclient_r.so.18.1.0 -> libmysqlclient.so.18.1.0
lrwxrwxrwx. 1 mysql mysql        20 Feb 15 14:39 libmysqlclient.so -> libmysqlclient.so.18
lrwxrwxrwx. 1 mysql mysql        24 Feb 15 14:39 libmysqlclient.so.18 -> libmysqlclient.so.18.1.0
-rwxr-xr-x. 1 mysql mysql   7654927 Feb 15 14:30 libmysqlclient.so.18.1.0
-rw-r--r--. 1 mysql mysql 129797464 Feb 15 14:38 libmysqld.a
-rw-r--r--. 1 mysql mysql     10166 Feb 15 14:29 libmysqlservices.a
drwxr-xr-x. 3 mysql mysql      4096 Feb 15 14:39 plugin


从上面的结果可以得知,已经存在libmysqlclient.so.18文件了,但是版本不符,因此还是需要这个libmysqlclient.so.16文件,那么从哪里可以找到呢?最简便的方法就是安装MySQL RPM安装套件中的MySQL-shared-compat包:(我的MySQL是编译安装的,但是在同版本的RPM套件中MySQL-shared-compat-5.6.16-1.el6.i686.rpm包却提供了必要的libmysqlclient.so.16文件,就这点来说编译部署还是没有RPM安装来的全面)

复制代码 代码如下:

# 我的MySQL版本:5.6.16
[root@beanvm ~]# rpm -ivh MySQL-shared-compat-5.6.16-1.el6.i686.rpm
Preparing...                ########################################### [100%]
   1:MySQL-shared-compat    ########################################### [100%]

再次安装perl-DBD-MySQL-4.013-3.el6.i686.rpm就可以了

复制代码 代码如下:

[root@beanvm Packages]# rpm -ivh perl-DBD-MySQL-4.013-3.el6.i686.rpm
warning: perl-DBD-MySQL-4.013-3.el6.i686.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY
Preparing...                ########################################### [100%]
   1:perl-DBD-MySQL         ########################################### [100%]

综上所述,安装DBI建议顺序安装三个包:

复制代码 代码如下:

# DBI安装包:
perl-DBI-1.609-4.el6.i686.rpm
# 必备的库文件包,注意版本,这里主要提供的是libmysqlclient.so.16
MySQL-shared-compat-5.6.16-1.el6.i686.rpm
# DBD组件
perl-DBD-MySQL-4.013-3.el6.i686.rpm

成功后就可以使用Benchmark进行基准测试了,下面是测试插入性能的部分数据:

复制代码 代码如下:

[mysql@beanvm sql-bench]$ ./test-insert --server=mysql --user=root --password=mysql --log
Testing server 'MySQL 5.6.16' at 2014-02-15 16:36:17

Testing the speed of inserting data into 1 table and do some selects on it.
The tests are done with a table that has 100000 rows.

Generating random keys
Creating tables
Inserting 100000 rows in order
Inserting 100000 rows in reverse order
Inserting 100000 rows in random order
Time for insert (300000): 879 wallclock secs ( 3.51 usr  1.21 sys +  0.00 cusr  0.00 csys =  4.72 CPU)

Testing insert of duplicates
Time for insert_duplicates (100000): 18 wallclock secs ( 3.81 usr  1.41 sys +  0.00 cusr  0.00 csys =  5.22 CPU)

Test of prepared+execute/once prepared many execute selects
Time for prepared_select (100000): 31 wallclock secs (10.87 usr  1.81 sys +  0.00 cusr  0.00 csys = 12.68 CPU)
......

机器太差,数据请无视。。

相关文章

  • 利用phpmyadmin设置mysql的权限方法

    利用phpmyadmin设置mysql的权限方法

    这篇文章主要介绍了如何利用phpmyadmin设置mysql的权限方法,需要的朋友可以参考下
    2018-03-03
  • MySQL限制查询和数据排序介绍

    MySQL限制查询和数据排序介绍

    这篇文章主要介绍了MySQL限制查询和数据排序介绍,通过limit可以限制返回结果的行数,而当数据查询出来以后,我们可以对数据进行排序处理。在末尾使用order by语句,下文相关详细介绍,需要的小伙伴可以参考一下
    2022-03-03
  • mysql 5.7.16 安装配置方法图文教程(ubuntu 16.04)

    mysql 5.7.16 安装配置方法图文教程(ubuntu 16.04)

    这篇文章主要为大家分享了ubuntu 16.04下mysql 5.7.16 安装配置方法图文教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-01-01
  • linux正确重启MySQL的方法

    linux正确重启MySQL的方法

    修改了my.cnf,需要重启MySQL服务,正确重启MYSQL方法请看下面的文章
    2013-11-11
  • MySQL中查询日志与慢查询日志的基本学习教程

    MySQL中查询日志与慢查询日志的基本学习教程

    这篇文章主要介绍了MySQL中查询日志与慢查询日志的基本学习教程,文中还提到了MySQL自带的Mysqldumpslow日志分析工具的使用,需要的朋友可以参考下
    2015-12-12
  • mysql 超大数据/表管理技巧

    mysql 超大数据/表管理技巧

    在实际应用中经过存储、优化可以做到在超过9千万数据中的查询响应速度控制在1到20毫秒。看上去是个不错的成绩,不过优化这条路没有终点,当我们的系统有超过几百人、上千人同时使用时,仍然会显的力不从心
    2013-03-03
  • clickhouse分布式表的操作示例详解

    clickhouse分布式表的操作示例详解

    这篇文章主要为大家介绍了clickhouse分布式表的操作示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-11-11
  • 详解Mysql case then使用

    详解Mysql case then使用

    mysql case then在程序开发中经常用到,通过本文给大家介绍mysql case then使用相关知识,对mysql case then相关知识感兴趣的朋友一起学习吧
    2015-12-12
  • MySQL的Grant命令详解

    MySQL的Grant命令详解

    mysql中可以通过Grant命令为数据库赋予用户权限,这里简单介绍下Grant的使用方法,需要的朋友可以参考下
    2013-10-10
  • MySQL数据库命令

    MySQL数据库命令

    这篇文章主要介绍了数据库的常用命令,数据库中对表的命令以及一些常用的数据库查询和常用函数,感兴趣的小伙伴可以借鉴一下
    2023-03-03

最新评论