当前位置: 首页 > 编程笔记 >

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

楮星鹏
2023-03-14
本文向大家介绍MySQL基准测试套件Benchmark安装DBI组件过程分享,包括了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) ......

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

 类似资料:
  • 问题内容: 我正在尝试打包我的项目。但是,它会自动运行以前执行打包的测试。测试将一些内容插入数据库。这不是我想要的,我需要避免在打包应用程序时运行测试。有人知道如何在没有测试的情况下运行软件包吗? 问题答案: 与运行Maven

  • 11.4. 基准测试 基准测试是测量一个程序在固定工作负载下的性能。在Go语言中,基准测试函数和普通测试函数写法类似,但是以Benchmark为前缀名,并且带有一个*testing.B类型的参数;*testing.B参数除了提供和*testing.T类似的方法,还有额外一些和性能测量相关的方法。它还提供了一个整数N,用于指定操作执行的循环次数。 下面是IsPalindrome函数的基准测试,其中循

  • GoCPPLua (JIT) 策略执行的负载在model_b_test.go中进行基准测试。 测试是: 英特尔 酷睿 i7-6700HQ CPU @ 2.60GHz, 2601 Mhz, 4 核, 8 处理器 go test -bench= -benchmem 的测试结果如下 (op = 一次 Enforce() 调用, ms = 毫秒, KB = 千字节): 测试用例 规则大小 时间开销 (m

  • 本文向大家介绍mysql zip 文件安装教程,包括了mysql zip 文件安装教程的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了mysql zip 文件安装的具体方法,供大家参考,具体内容如下 1.下载 mysql zip 文件下载地址 2.解压,配置环境变量 MYSQL_HOME:D:\mysql path后面加 :%MYSQL_HOME%\bin  3.添加文件my.ini

  • 主要内容:1. 测试类,2. testng.xml,其他例子测试套件是用于测试软件程序的行为或一组行为的测试用例的集合。 在TestNG中,我们无法在测试源代码中定义一个套件,但它可以由一个XML文件表示,因为套件是执行的功能。 它还允许灵活配置要运行的测试。 套件可以包含一个或多个测试,并由标记定义。 是的根标记。 它描述了一个测试套件,它又由几个部分组成。 下表列出了接受的所有定义的合法属性。 属性 描述 name 套件的名称,这是一个强制属性。 ve

  • 主要内容:1 概述,2 创建简单的Maven项目,3 项目包装结构,4 更新pom.xml文件中的JUnit依赖关系,5 创建LoginService.java和LoginServiceTest.java,,6.创建UserService.java和UserServiceTest.java,7 创建测试套件,8 结论1 概述 在本指南中,我们将学习如何一次运行多个测试类。将Suite用作运行程序可以使您手动构建一个包含许多类测试的套件。它等效于JUnit 3.8.x静态Test suite()方

  • 测试套件是测试的集合。通常会在一个测试套件将所有的测试作为一个连续的批处理作业运行。 Selenium IDE 可以用一个简单的 HTML 文件来定义测试套件。语法也很简单。一个 HTML 表格定义了一个测试列表,其中的每一行定义了每个测试文件的路径。举个例子: <html> <head> <title>Test Suite Function Tests - Priority 1</title>

  • 测试 oil test(或 oil t)命令运行与你的 web app、模组和套件相关的 PHPUnit 测试。关于 FuelPHP 单元测试的完整文件可以在 单元测试 文件页面找到,而关于 PHPUnit 的完整文件可以在 PHPUnit 网站找到。 配置 Oil 实用工具本身不需要太多配置,但如果在你机器上的 PHPUnit 实例不是全域安装(例如,如果你使用 Composer 安装 PHPU