真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

怎么用mysql性能,mysql如何優(yōu)化性能

如何使用MySQL自帶的性能壓力測(cè)試工具mysqlslap

1

創(chuàng)新互聯(lián)是專(zhuān)業(yè)的平果網(wǎng)站建設(shè)公司,平果接單;提供成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè),網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專(zhuān)業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行平果網(wǎng)站開(kāi)發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專(zhuān)業(yè)做搜索引擎喜愛(ài)的網(wǎng)站,專(zhuān)業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來(lái)合作!

使用--auto-generate-sql參數(shù)表示用mysqlslap工具自己生成的SQL腳本來(lái)測(cè)試并發(fā)壓力

mysqlslap --auto-generate-sql -uroot -p123456

2

并發(fā)測(cè)試,使用–concurrency來(lái)模擬并發(fā)連接,連接數(shù)可以多個(gè),用逗號(hào)隔開(kāi)

mysqlslap --auto-generate-sql --concurrency=100 -uroot -p123456

mysqlslap --auto-generate-sql --concurrency=50,100 -uroot -p123456

3

使用--iterations模擬迭代測(cè)試,用于需要多次執(zhí)行測(cè)試得到平均值。

mysqlslap --auto-generate-sql --iterations=5 -uroot -p123456

4

使用--engine測(cè)試不同的存儲(chǔ)引擎的性能進(jìn)行對(duì)比

mysqlslap --auto-generate-sql --concurrency=50,100 --iterations=5 --engine=myisam,innodb -uroot -p123456

5

--query=name,-q 指定自定義腳本執(zhí)行測(cè)試,例如可以調(diào)用自定義的一個(gè)存儲(chǔ)過(guò)程或者sql語(yǔ)句來(lái)執(zhí)行測(cè)試。--create-schema 指定自定義的測(cè)試數(shù)據(jù)庫(kù)名稱,

mysqlslap --auto-generate-sql --concurrency=50,100 --create-schema="landclash" --query="call landclash.sp_player_getname(34);" --number-of-queries=5000 -uroot -p123456

幾個(gè)常用的MySQL性能測(cè)試工具

1、mysqlslap

安裝:簡(jiǎn)單,裝了mysql就有了

作用:模擬并發(fā)測(cè)試數(shù)據(jù)庫(kù)性能。

優(yōu)點(diǎn):簡(jiǎn)單,容易使用。

不足:不能指定生成的數(shù)據(jù)規(guī)模,測(cè)試過(guò)程不清楚針對(duì)十萬(wàn)級(jí)還是百萬(wàn)級(jí)數(shù)據(jù)做的測(cè)試,感覺(jué)不太適合做綜合測(cè)試,比較適合針對(duì)既有數(shù)據(jù)庫(kù),對(duì)單個(gè)sql進(jìn)行優(yōu)化的測(cè)試。

使用方法:

可以使用mysqlslap --help來(lái)顯示使用方法:

Default options are read from the following files in the given order:

/etc/mysql/my.cnf /etc/my.cnf ~/.my.cnf

--concurrency代表并發(fā)數(shù)量,多個(gè)可以用逗號(hào)隔開(kāi),concurrency=10,50,100, 并發(fā)連接線程數(shù)分別是10、50、100個(gè)并發(fā)。

--engines代表要測(cè)試的引擎,可以有多個(gè),用分隔符隔開(kāi)。

--iterations代表要運(yùn)行這些測(cè)試多少次。

--auto-generate-sql 代表用系統(tǒng)自己生成的SQL腳本來(lái)測(cè)試。

--auto-generate-sql-load-type 代表要測(cè)試的是讀還是寫(xiě)還是兩者混合的(read,write,update,mixed)

--number-of-queries 代表總共要運(yùn)行多少次查詢。每個(gè)客戶運(yùn)行的查詢數(shù)量可以用查詢總數(shù)/并發(fā)數(shù)來(lái)計(jì)算。

--debug-info 代表要額外輸出CPU以及內(nèi)存的相關(guān)信息。

--number-int-cols :創(chuàng)建測(cè)試表的 int 型字段數(shù)量

--auto-generate-sql-add-autoincrement : 代表對(duì)生成的表自動(dòng)添加auto_increment列,從5.1.18版本開(kāi)始

--number-char-cols 創(chuàng)建測(cè)試表的 char 型字段數(shù)量。

--create-schema 測(cè)試的schema,MySQL中schema也就是database。

--query 使用自定義腳本執(zhí)行測(cè)試,例如可以調(diào)用自定義的一個(gè)存儲(chǔ)過(guò)程或者sql語(yǔ)句來(lái)執(zhí)行測(cè)試。

--only-print 如果只想打印看看SQL語(yǔ)句是什么,可以用這個(gè)選項(xiàng)。

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

或:

指定數(shù)據(jù)庫(kù)和sql語(yǔ)句:

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個(gè)客戶端同時(shí)運(yùn)行要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

安裝時(shí)候可能會(huì)報(bào)錯(cuò),后來(lái)baidu發(fā)現(xiàn)個(gè)好文 怕以后找不到,也貼過(guò)來(lái)吧

1.如果mysql不是默認(rèn)路徑安裝,那么需要通過(guò)指定--with-mysql-includes和--with-mysql-libs參數(shù)來(lái)加載mysql安裝路徑

2.如果報(bào)錯(cuò):

../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

那么執(zhí)行下根目錄的:autogen.sh文件,然后重新configure make make install

3.如果報(bào)錯(cuò):

sysbench: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object file: No such file or directory

那么執(zhí)行下:

n -s /usr/local/mysql5.5/mysql/lib/libmysqlclient.so.18 /usr/lib64/

4.如果執(zhí)行autogen.sh時(shí),報(bào)如下錯(cuò)誤:

./autogen.sh: line 3: aclocal: command not found

那么需要安裝一個(gè)軟件:

yum install automake

然后需要增加一個(gè)參數(shù):查找: AC_PROG_LIBTOOL 將其注釋?zhuān)缓笤黾覣C_PROG_RANLIB

作用:模擬并發(fā),可以執(zhí)行CPU/內(nèi)存/線程/IO/數(shù)據(jù)庫(kù)等方面的性能測(cè)試。數(shù)據(jù)庫(kù)目前支持MySQL/Oracle/PostgreSQL

優(yōu)點(diǎn):可以指定測(cè)試數(shù)據(jù)的規(guī)模,可以單獨(dú)測(cè)試讀、寫(xiě)的性能,也可以測(cè)試讀寫(xiě)混合的性能。

不足:測(cè)試的時(shí)候,由于網(wǎng)絡(luò)原因,測(cè)試的非常慢,但是最終給的結(jié)果卻很好,并發(fā)支持很高,所以給我的感覺(jué)是并不太準(zhǔn)確。當(dāng)然也可能我沒(méi)搞明白原理

使用方法:

準(zhǔn)備數(shù)據(jù)

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

執(zhí)行測(cè)試

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

安裝:

如果從原網(wǎng)站上下載源碼比較麻煩,需要工具、注冊(cè)、生成證書(shū)等。這里提供一個(gè)下載包

export C_INCLUDE_PATH=/usr/include/mysql

export PATH=/usr/bin:$PATH

export LD_LIBRARY_PATH=/usr/lib/mysql

cd /tmp/tpcc/src

make

然后就會(huì)在 /tmp/tpcc-mysql 下生成 tpcc 命令行工具 tpcc_load 、 tpcc_start

作用:測(cè)試mysql數(shù)據(jù)庫(kù)的整體性能

優(yōu)點(diǎn):符合tpcc標(biāo)準(zhǔn),有標(biāo)準(zhǔn)的方法,模擬真實(shí)的交易活動(dòng),結(jié)果比較可靠。

不足:不能單獨(dú)測(cè)試讀或者寫(xiě)的性能,對(duì)于一些以查詢?yōu)橹骰蛘咧粚?xiě)的應(yīng)用,就沒(méi)有這么大的意義了。

使用方法:

加載數(shù)據(jù)

創(chuàng)建庫(kù)

mysqlcreate database tpcc10;

創(chuàng)建表:

shellmysql tpcc10 create_table.sql

添加外鍵:

shellmysql tpcc10 add_fkey_idx.sql

加載數(shù)據(jù):

1、單進(jìn)程加載:

shell./tpcc_load 192.168.11.172 tpcc10 root pwd 300

|主機(jī)||數(shù)據(jù)庫(kù)||用戶||密碼||warehouse|

2、并發(fā)加載:(推薦,但需要修改一下)

shell./load.sh tpcc300 300

|數(shù)據(jù)庫(kù)||warehouse|

3、測(cè)試

./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性能提升有哪些辦法?

硬件提升方法有:使用高速陣列磁盤(pán)、固態(tài)硬盤(pán)、甚至RAM磁盤(pán);加大機(jī)器內(nèi)存,調(diào)整核心參數(shù)使用更多的內(nèi)存

軟件方法有:建立合理的索引,優(yōu)化表的結(jié)構(gòu)(符合范式),優(yōu)化程序(盡量用主鍵訪問(wèn)數(shù)據(jù))

MySQL高性能SQL注意事項(xiàng)簡(jiǎn)述

數(shù)據(jù)庫(kù)作為應(yīng)用開(kāi)發(fā)中必不缺少的基礎(chǔ)設(shè)施,其性能直接影響應(yīng)用的整體運(yùn)行速度。MySQL是目前最廣泛使用的關(guān)系型數(shù)據(jù)庫(kù)之一,對(duì)于開(kāi)發(fā)人員寫(xiě)出性能良好的SQL是必備的基本技能之一。下面簡(jiǎn)單描述下編寫(xiě)SQL的注意事項(xiàng)。

編寫(xiě)高質(zhì)量的SQL需要從以下幾個(gè)方面注意,基本原則、表字段注意事項(xiàng)、索引使用注意事項(xiàng)、SQL注意事項(xiàng)。

基本原則

一、盡量不要在數(shù)據(jù)庫(kù)里做運(yùn)算。如果遇到運(yùn)算盡可能在應(yīng)用程序?qū)舆M(jìn)行計(jì)算。

二、控制數(shù)據(jù)庫(kù)表數(shù)量、控制單表數(shù)據(jù)量、控制表的字段數(shù)。建議單庫(kù)不要超過(guò)四百?gòu)埍?,建議單表字段不要超過(guò)五十個(gè),建議單表的數(shù)據(jù)量不要超過(guò)一千萬(wàn)。

三、不要編寫(xiě)大SQL、不要使用大事務(wù)。SQL盡量寫(xiě)的簡(jiǎn)單點(diǎn)拒絕編寫(xiě)大SQL,可以將大SQL拆分成多個(gè)小SQL,在應(yīng)用層聚合。大事務(wù)拆分成多個(gè)小事務(wù),快速提交。

表字段注意事項(xiàng)

一、選擇合適數(shù)值字段類(lèi)型。能用小字段類(lèi)型的就用小字段類(lèi)型,如tinyint就比int(1)在表示小數(shù)據(jù)時(shí)合適。

二、能用數(shù)字表示就不要用字符。如可以用無(wú)符號(hào)INT存儲(chǔ)IP而不是字符串表示。

三、避免使用NULL字段。原因NULL字段查詢優(yōu)化難,含NULL復(fù)合索引失效。

四、少用或拆分TEXT/BLOB字段。字段太大需要更多的空間,性能低下,如需使用拆分到單獨(dú)表。

五、不要在表字段中存儲(chǔ)圖片。

索引使用注意事項(xiàng)

一、合理添加索引。索引添加太多會(huì)影響更新速度。能夠使用復(fù)合索引的避免加多個(gè)單獨(dú)索引。

二、字符字段建立前綴索引。

三、不在索引列做運(yùn)算。索引列做運(yùn)算會(huì)導(dǎo)致索引失效。

四、盡量不使用外建。

SQL類(lèi)注意事項(xiàng)

一、 SQL語(yǔ)句盡可能簡(jiǎn)單。大SQL拆分成多個(gè)小SQL。

二、事務(wù)編寫(xiě)盡量短小。事務(wù)即開(kāi)即用用完立即關(guān)閉。

三、盡量不要使用select *。只取需要的列。

四、改寫(xiě)OR為IN或者改寫(xiě)為UNION操作。OR在數(shù)據(jù)量大的時(shí)候性能低于IN。

五、避免NOT、!=、、NOT IN、NOT EXISTS、NOT LIKE等查詢。

六、避免%前綴模糊查詢。

七、能用UNION ALL不要用UNION。

八、GROUP BY中去除排序。自帶排序。

九、同類(lèi)型的字段做比較。字符類(lèi)和字符類(lèi)比較,數(shù)值類(lèi)和數(shù)值類(lèi)比較,不要混在一起比較。

十、盡量單表查詢,盡量不要多表關(guān)聯(lián)查詢。多表關(guān)聯(lián)查詢可以拆分成單表查詢?cè)趹?yīng)用程序中聚合數(shù)據(jù)。

十一、復(fù)合索引的多列注意最左原則。

上述注意事項(xiàng)能避免很多性能低下的SQL,希望在開(kāi)發(fā)過(guò)程中能引起注意。


當(dāng)前標(biāo)題:怎么用mysql性能,mysql如何優(yōu)化性能
轉(zhuǎn)載源于:http://weahome.cn/article/dseigis.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部