MySQL基準(zhǔn)測(cè)試套件Benchmark安裝DBI組件過(guò)程分享
今天打算用MySQL自帶的基準(zhǔn)測(cè)試套件(Benchmark Suite)來(lái)測(cè)試一下插入性能,結(jié)果出現(xiàn)錯(cuò)誤:
# 還是交代一下環(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)錯(cuò)
[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ù)庫(kù)的重要接口,先來(lái)檢查一下這個(gè)包是否存在
[mysql@beanvm ]$ rpm -qa |grep perl-DB
可以直接用yum來(lái)安裝,這里我用的安裝包的形式,幸運(yùn)的是,這些包在RHEL6的安裝介質(zhì)中都可以找到,只要安裝下面兩個(gè)包就可以了:
[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包時(shí),我們發(fā)現(xiàn)提示缺失libmysqlclient.so.16文件,如果是經(jīng)常安裝MySQL的話,應(yīng)該知道libmysqlclient.so是一個(gè)MySQL數(shù)據(jù)庫(kù)中必備的庫(kù)文件,會(huì)不會(huì)是沒(méi)有鏈接到呢?
[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文件了,但是版本不符,因此還是需要這個(gè)libmysqlclient.so.16文件,那么從哪里可以找到呢?最簡(jiǎn)便的方法就是安裝MySQL RPM安裝套件中的MySQL-shared-compat包:(我的MySQL是編譯安裝的,但是在同版本的RPM套件中MySQL-shared-compat-5.6.16-1.el6.i686.rpm包卻提供了必要的libmysqlclient.so.16文件,就這點(diǎn)來(lái)說(shuō)編譯部署還是沒(méi)有RPM安裝來(lái)的全面)
# 我的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建議順序安裝三個(gè)包:
# DBI安裝包:
perl-DBI-1.609-4.el6.i686.rpm
# 必備的庫(kù)文件包,注意版本,這里主要提供的是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)測(cè)試了,下面是測(cè)試插入性能的部分?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ù)請(qǐng)無(wú)視。。
相關(guān)文章
對(duì)于mysql的query_cache認(rèn)識(shí)的誤區(qū)
一直以來(lái),對(duì)于mysql的query_cache,在網(wǎng)上就流行著這樣的說(shuō)法,對(duì)于mysql的query_cache鍵值就是mysql的query,所以,如果在query中有任何的不同,包括多了個(gè)空格,都會(huì)導(dǎo)致mysql認(rèn)為是不同的查詢2012-03-03MySQL 數(shù)據(jù)庫(kù)設(shè)計(jì)復(fù)習(xí)筆記及項(xiàng)目實(shí)戰(zhàn)
參考的數(shù)據(jù)庫(kù)文檔主要有:目前國(guó)內(nèi)的常見(jiàn)的PHP系統(tǒng)的數(shù)據(jù)庫(kù)2010-03-03Navicat修改MySQL數(shù)據(jù)庫(kù)密碼的多種方法
這篇文章主要介紹了Navicat修改MySQL數(shù)據(jù)庫(kù)密碼,需要的朋友可以參考下2018-09-09MySQL中的批量修改、插入操作數(shù)據(jù)庫(kù)
在平常的項(xiàng)目中,我們會(huì)需要批量操作數(shù)據(jù)庫(kù)的時(shí)候,例如:批量修改,批量插入,那我們不應(yīng)該使用 for 循環(huán)去操作數(shù)據(jù)庫(kù),這樣會(huì)導(dǎo)致我們反復(fù)與數(shù)據(jù)庫(kù)發(fā)生連接和斷開(kāi)連接,影響性能和增加操作時(shí)間,所以可以使用SQL 批量修改的方式去操作數(shù)據(jù)庫(kù),感興趣的朋友一起學(xué)習(xí)下吧2023-09-09MySQL實(shí)現(xiàn)樹(shù)狀所有子節(jié)點(diǎn)查詢的方法
這篇文章主要介紹了MySQL實(shí)現(xiàn)樹(shù)狀所有子節(jié)點(diǎn)查詢的方法,涉及mysql節(jié)點(diǎn)查詢、存儲(chǔ)過(guò)程調(diào)用等操作技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2016-06-06MySQL的WHERE語(yǔ)句中BETWEEN與IN的使用教程
這篇文章主要介紹了MySQL的WHERE語(yǔ)句中BETWEEN與IN的使用教程,是MySQL入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2015-12-12MySQL 配置優(yōu)化(多個(gè)參數(shù))
安裝MySQL后,配置文件my.cnf在 /MySQL安裝目錄/share/mysql目錄中,該目錄中還包含多個(gè)配置文件可供參考,有my-large.cnf ,my-huge.cnf, my-medium.cnf,my-small.cnf,分別對(duì)應(yīng)大中小型數(shù)據(jù)庫(kù)應(yīng)用的配置。win環(huán)境下即存在于MySQL安裝目錄中的.ini文件2016-05-05