本文目錄一覽:
- 1、幾個常用的MySQL性能測試工具
- 2、如何評估和測試Mysql及oracle資料庫性能
- 3、mysql資料庫查詢圖書表,輸出每一類圖書的最高價格、最低價格平均價格的代碼怎?
- 4、mysql資料庫
- 5、MySql資料庫測試
- 6、mysql怎麼從集合中查詢數據
幾個常用的MySQL性能測試工具
1、mysqlslap
安裝:簡單,裝了mysql就有了
作用:模擬並發測試資料庫性能。
優點:簡單,容易使用。
不足:不能指定生成的數據規模,測試過程不清楚針對十萬級還是百萬級數據做的測試,感覺不太適合做綜合測試,比較適合針對既有資料庫,對單個sql進行優化的測試。
使用方法:
可以使用mysqlslap –help來顯示使用方法:
Default options are read from the following files in the given order:
/etc/mysql/my.cnf /etc/my.cnf ~/.my.cnf
–concurrency代表並發數量,多個可以用逗號隔開,concurrency=10,50,100, 並發連接線程數分別是10、50、100個並發。
–engines代表要測試的引擎,可以有多個,用分隔符隔開。
–iterations代表要運行這些測試多少次。
–auto-generate-sql 代表用系統自己生成的SQL腳本來測試。
–auto-generate-sql-load-type 代表要測試的是讀還是寫還是兩者混合的(read,write,update,mixed)
–number-of-queries 代表總共要運行多少次查詢。每個客戶運行的查詢數量可以用查詢總數/並發數來計算。
–debug-info 代表要額外輸出CPU以及內存的相關信息。
–number-int-cols :創建測試表的 int 型欄位數量
–auto-generate-sql-add-autoincrement : 代表對生成的表自動添加auto_increment列,從5.1.18版本開始
–number-char-cols 創建測試表的 char 型欄位數量。
–create-schema 測試的schema,MySQL中schema也就是database。
–query 使用自定義腳本執行測試,例如可以調用自定義的一個存儲過程或者sql語句來執行測試。
–only-print 如果只想列印看看SQL語句是什麼,可以用這個選項。
mysqlslap -umysql -p123 –concurrency=100 –iterations=1 –auto-generate-sql –auto-generate-sql-add-autoincrement –auto-generate-sql-load-type=mixed –engine=myisam –number-of-queries=10 –debug-info
或:
指定資料庫和sql語句:
mysqlslap -h192.168.3.18 -P4040 –concurrency=100 –iterations=1 –create-schema=’test’ –query=’select * from test;’ –number-of-queries=10 –debug-info -umysql -p123
要是看到底做了什麼可以加上:–only-print
Benchmark
Average number of seconds to run all queries: 25.225 seconds
Minimum number of seconds to run all queries: 25.225 seconds
Maximum number of seconds to run all queries: 25.225 seconds
Number of clients running queries: 100
Average number of queries per client: 0
以上表明100個客戶端同時運行要25秒
2、sysbench
安裝:
可以從 下載
tar zxf sysbench-0.4.12.tar.gz
cd sysbench-0.4.12
./autogen.sh
./configure make make install
strip /usr/local/bin/sysbench
安裝時候可能會報錯,後來baidu發現個好文 怕以後找不到,也貼過來吧
1.如果mysql不是默認路徑安裝,那麼需要通過指定–with-mysql-includes和–with-mysql-libs參數來載入mysql安裝路徑
2.如果報錯:
../libtool: line 838: X–tag=CC: command not found
../libtool: line 871: libtool: ignoring unknown tag : command not found
../libtool: line 838: X–mode=link: command not found
../libtool: line 1004: *** Warning: inferring the mode of operation is deprecated.: command not found
../libtool: line 1005: *** Future versions of Libtool will require –mode=MODE be specified.: command not found
../libtool: line 2231: X-g: command not found
../libtool: line 2231: X-O2: command not found
那麼執行下根目錄的:autogen.sh文件,然後重新configure make make install
3.如果報錯:
sysbench: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object file: No such file or directory
那麼執行下:
n -s /usr/local/mysql5.5/mysql/lib/libmysqlclient.so.18 /usr/lib64/
4.如果執行autogen.sh時,報如下錯誤:
./autogen.sh: line 3: aclocal: command not found
那麼需要安裝一個軟體:
yum install automake
然後需要增加一個參數:查找: AC_PROG_LIBTOOL 將其注釋,然後增加AC_PROG_RANLIB
作用:模擬並發,可以執行CPU/內存/線程/IO/資料庫等方面的性能測試。資料庫目前支持MySQL/Oracle/PostgreSQL
優點:可以指定測試數據的規模,可以單獨測試讀、寫的性能,也可以測試讀寫混合的性能。
不足:測試的時候,由於網路原因,測試的非常慢,但是最終給的結果卻很好,並發支持很高,所以給我的感覺是並不太準確。當然也可能我沒搞明白原理
使用方法:
準備數據
sysbench –test=oltp –mysql-table-engine=myisam –oltp-table-size=400000 –mysql-db=dbtest2 –mysql-user=root –mysql-host=192.168.1.101 –mysql-password=pwd prepare
執行測試
sysbench –num-threads=100 –max-requests=4000 –test=oltp –mysql-table-engine=innodb –oltp-table-size=400000 –mysql-db=dbtest1 –mysql-user=root –mysql-host=192.168.1.101 –mysql-password=pwd run
sysbench 0.4.12: multi-threaded system evaluation benchmark
No DB drivers specified, using mysql
Running the test with following options:
Number of threads: 100
Doing OLTP test.
Running mixed OLTP test
Using Special distribution (12 iterations, 1 pct of values are returned in 75 pct cases)
Using “BEGIN” for starting transactions
Using auto_inc on the id column
Maximum number of requests for OLTP test is limited to 4000
Threads started!
Done.
OLTP test statistics:
queries performed:
read: 56014
write: 20005
other: 8002
total: 84021
transactions: 4001 (259.14 per sec.)
deadlocks: 0 (0.00 per sec.)
read/write requests: 76019 (4923.75 per sec.)
other operations: 8002 (518.29 per sec.)
Test execution summary:
total time: 15.4393s
total number of events: 4001
total time taken by event execution: 1504.7744
per-request statistics:
min: 33.45ms
avg: 376.10ms
max: 861.53ms
approx. 95 percentile: 505.65ms
Threads fairness:
events (avg/stddev): 40.0100/0.67
execution time (avg/stddev): 15.0477/0.22
3、tpcc-mysql
安裝:
如果從原網站上下載源碼比較麻煩,需要工具、註冊、生成證書等。這裡提供一個下載包
export C_INCLUDE_PATH=/usr/include/mysql
export PATH=/usr/bin:$PATH
export LD_LIBRARY_PATH=/usr/lib/mysql
cd /tmp/tpcc/src
make
然後就會在 /tmp/tpcc-mysql 下生成 tpcc 命令行工具 tpcc_load 、 tpcc_start
作用:測試mysql資料庫的整體性能
優點:符合tpcc標準,有標準的方法,模擬真實的交易活動,結果比較可靠。
不足:不能單獨測試讀或者寫的性能,對於一些以查詢為主或者只寫的應用,就沒有這麼大的意義了。
使用方法:
載入數據
創建庫
mysqlcreate database tpcc10;
創建表:
shellmysql tpcc10 create_table.sql
添加外鍵:
shellmysql tpcc10 add_fkey_idx.sql
載入數據:
1、單進程載入:
shell./tpcc_load 192.168.11.172 tpcc10 root pwd 300
|主機||資料庫||用戶||密碼||warehouse|
2、並發載入:(推薦,但需要修改一下)
shell./load.sh tpcc300 300
|資料庫||warehouse|
3、測試
./tpcc_start -h192.168.11.172 -d tpcc -u root -p ‘pwd’ -w 10 -c 10 -r 10 -l 60 -i 10 -f /mnt/hgfs/mysql/tpcc100_2013522.txt
***************************************
*** ###easy### TPC-C Load Generator ***
***************************************
option h with value ‘192.168.11.172’
option d with value ‘tpcc’
option u with value ‘root’
option p with value ‘pwd’
option w with value ‘1’
option c with value ‘100’
option r with value ‘120’
option l with value ’60’
option i with value ’10’
option f with value ‘/mnt/hgfs/mysql/tpcc100_2013522.txt’
Parameters
[server]: 192.168.11.172
[port]: 3306
[DBname]: tpcc
[user]: root
[pass]: pwd
[warehouse]: 1
[connection]: 100
[rampup]: 120 (sec.)
[measure]: 60 (sec.)
RAMP-UP TIME.(120 sec.)
MEASURING START.
如何評估和測試Mysql及oracle資料庫性能
首先 資料庫的性能有很多種 1:速度性能2:並發性能3:事務性能 在速度性能上,首先你需要首先確定你的測試環境。舉個例子,比如你的軟體可能的用戶群是一群使用586電腦的客戶,那麼肯定是mysql的效率要高出oracle.這個是為什麼呢,mysql在事務策略和安全策略上做的工作遠沒有oracle做出的多。如果軟體不需要這方面的高要求,那麼完全可以使用mysql,這樣機器的配置可以比較低,但是表現出的性能會更加優越。 前面是題外話,在測試前你需要首先頂一下你的測試環境,為了能讓oracle充分的表現出他的性能,你應該選取一些強勁的小型機或者伺服器來作為測試環境(雖然這樣的環境對於mysql來說可能浪費了,但是這樣才能確保2個資料庫都充分的發揮的自己的特性)。 其次,測試訪問速度,你可以通過對資料庫的大批量寫入來看出效果。所謂大批量寫入應該嘗試使用存儲過程一次讀入了10M的數據文件然後寫入並且記錄時間(同時記錄cpu,內存等佔用情況)。然後對於至少2個超過10萬的數據表做笛卡爾積查詢(全連接),查看查詢的時間。
mysql資料庫查詢圖書表,輸出每一類圖書的最高價格、最低價格平均價格的代碼怎?
1、首先在mysql資料庫,創建一張data表,表內插入多條數據,用於測試。
2、創建一個test.php文件,在文件內,使用header()方法將頁面的編碼格式設置為utf-8。
3、然後在test.php文件內,連接mysql資料庫,並使用mysqli_select_db選擇要操作的資料庫。
4、在test.php文件內,創建一條查詢data數據表所有數據的sql語句,再使用mysqli_query執行sql語句。
5、在test.php文件內,通過while語句,使用mysqli_fetch_assoc函數將結果集數據轉換為數組形式,並通過echo輸出每一條記錄的username值。
6、最後在瀏覽器打開test.php文件,查看結果,如下圖所示就完成了。
mysql資料庫
MySQL資料庫一般指MySQL,MySQL是一個關係型資料庫管理系統,由瑞典MySQL AB 公司開發。
mysql是目前網站以及APP應用上用得較多的一個開源的關係型資料庫系統,可以對數據進行保存,分段化的數據保存,也可以對其數據進行檢索,查詢等功能的資料庫。
默認的mysql資料庫中存有一個庫這個就是mysql的系統資料庫,可以對其保存系統的數據包括mysql資料庫的信息,資料庫root賬號,普通賬號,以及資料庫的名稱,還有資料庫的一些表還有一些數字型的數據類型結構都會有所保存。
mysql資料庫的優點
(1)MySQL資料庫是用C和C++語言編寫的,並且使用了多種編輯器進行測試,以保證源碼的可移植性。
(2)支持多個操作系統例如:Windows、Linux、Mac OS等等。
(3)支持多線程,可以充分的利用CPU資源。
(4)為多種編程語言提供API,包括C語言、Java、PHP、Python語言等。
(5)MySQL優化了SQL演算法,有效的提高了查詢速度。
(6)MySQL內提供了用於管理,檢查以及優化資料庫操作的管理工具。
(7)它能夠作為一個單獨的應用程序應用在客戶端伺服器網路環境中,也可以作為一個庫嵌入到其他的軟體中並提供多種語言支持。
MySql資料庫測試
1.首先現在mysql和客戶端 網上有一款名為navicat for mysql的軟體就是客戶端 (英文不好最好下個中文版本的狗狗上就有下)
2.傻瓜式的安裝上以後 點擊鏈接 配置自己的鏈接名字然後地址寫上本機地址localhost
3.給你的資料庫指的是建表的時候用的SQL腳本所以是在本地的你只需要在軟體中運行腳本即可
4.你測試的是資料庫的完整性所以要查看資料庫中的表然中欄位是否齊全
祝你成功
mysql怎麼從集合中查詢數據
1、選中需要測試的資料庫,並查看測試資料庫表;由於表t_people_info中的id是主鍵,求id的個數即是求資料庫表的總記錄數,代碼如下:
select count(id) from t_people_info;
2、查看資料庫表t_people_info中年齡中最小值,需要用到集合函數min(),代碼如下:
select min(p_age) from t_people_info;
3、查看資料庫表t_people_info中年齡中最大值,需要用到集合函數max(),代碼如下:
select max(p_age) from t_people_info;
4、查看資料庫表t_people_info中年齡中平均值,需要用到集合函數avg(),代碼如下:
select avg(p_age) from t_people_info;
5、若想統計t_people_info中的年齡的總和,用到集合函數sum(),
代碼如下:
select sum(p_age) from t_people_info;
6、統計資料庫表中記錄個數,除了使用count(主鍵)外,可以使用count(1)、count(*)和count(0),
代碼如下:
select count(1) from t_people_info;
select count(*) from t_people_info;
select count(0) from t_people_info;
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/155453.html