MySQL基準(zhǔn)測試套件Benchmark安裝DBI組件過程分享
今天打算用MySQL自帶的基準(zhǔn)測試套件(Benchmark Suite)來測試一下插入性能,結(jié)果出現(xiàn)錯誤:
# 還是交代一下環(huán)境吧
[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
# 下為報(bào)錯
[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連接數(shù)據(jù)庫的重要接口,先來檢查一下這個包是否存在
[mysql@beanvm ]$ rpm -qa |grep perl-DB
可以直接用yum來安裝,這里我用的安裝包的形式,幸運(yùn)的是,這些包在RHEL6的安裝介質(zhì)中都可以找到,只要安裝下面兩個包就可以了:
[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包時,我們發(fā)現(xiàn)提示缺失libmysqlclient.so.16文件,如果是經(jīng)常安裝MySQL的話,應(yīng)該知道libmysqlclient.so是一個MySQL數(shù)據(jù)庫中必備的庫文件,會不會是沒有鏈接到呢?
[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
從上面的結(jié)果可以得知,已經(jīng)存在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文件,就這點(diǎn)來說編譯部署還是沒有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進(jìn)行基準(zhǔn)測試了,下面是測試插入性能的部分?jǐn)?shù)據(jù):
[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)
......
機(jī)器太差,數(shù)據(jù)請無視。。
相關(guān)文章
MySQL中distinct與group by之間的性能進(jìn)行比較
這篇文章主要針對MySQL中distinct與group by之間的性能進(jìn)行比較,內(nèi)容比較詳細(xì),很直觀的能看出比較結(jié)果,感興趣的小伙伴們可以參考一下2015-11-11
mysql存儲過程之游標(biāo)(DECLARE)原理與用法詳解
這篇文章主要介紹了mysql存儲過程之游標(biāo)(DECLARE)原理與用法,結(jié)合實(shí)例形式詳細(xì)分析了mysql存儲過程游標(biāo)(DECLARE)的基本功能、原理、使用方法及操作注意事項(xiàng),需要的朋友可以參考下2019-12-12
Can''t connect to MySQL server on ''localhost'' (10048)問題解決方
windows 2003服務(wù)器運(yùn)行php的提示Can't connect to MySQL server on 'localhost' (10048), 下面來看下解決方法2013-09-09
MySQL窗口函數(shù)OVER使用示例詳細(xì)講解
這篇文章主要介紹了MySQL窗口函數(shù)OVER()用法及說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-01-01
mysql函數(shù)之常見數(shù)學(xué)函數(shù)示例詳解
文章總結(jié)了多個數(shù)學(xué)和字符串處理函數(shù)的功能和使用示例,包括格式化數(shù)字、計(jì)算絕對值、平方根、取整、生成隨機(jī)數(shù)、四舍五入、截?cái)唷⒎祷胤?、冪運(yùn)算以及最大值最小值的計(jì)算,感興趣的朋友一起看看吧2025-03-03

