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

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

MySQL存儲(chǔ)引擎是什么及作用

本文主要給大家簡(jiǎn)單講講MySQL存儲(chǔ)引擎是什么及作用,相關(guān)專業(yè)術(shù)語(yǔ)大家可以上網(wǎng)查查或者找一些相關(guān)書籍補(bǔ)充一下,這里就不涉獵了,我們就直奔主題吧,希望MySQL存儲(chǔ)引擎是什么及作用這篇文章可以給大家?guī)?lái)一些實(shí)際幫助。

創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供平城網(wǎng)站建設(shè)、平城做網(wǎng)站、平城網(wǎng)站設(shè)計(jì)、平城網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)與制作、平城企業(yè)網(wǎng)站模板建站服務(wù),10多年平城做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。

一、mysql存儲(chǔ)引擎介紹:

MySQL在5.1(不包括)之前的版本中,存儲(chǔ)引擎是需要在MySQL 安裝的時(shí)候就必須和MySQL 一起被編譯并同時(shí)被安裝的。

但是從MySQL5.1 開始,MySQL AB 對(duì)其結(jié)構(gòu)體系做了較大的改造,并引入了一個(gè)新的概念:插件式存儲(chǔ)引擎體系結(jié)構(gòu)。MySQL AB 在架構(gòu)改造的時(shí)候,讓存儲(chǔ)引擎層和sql layer各自更為獨(dú)立,耦合更小,甚至可以做到在線加載新的存儲(chǔ)引擎,也就是完全可以將一個(gè)新的存儲(chǔ)引擎加載到一個(gè)正在運(yùn)行的MySQL 中,而不影響MySQL 的正常運(yùn)行。插件式存儲(chǔ)引擎的架構(gòu),為存儲(chǔ)引擎的加載和移出更為靈活方便,也使自行開發(fā)存儲(chǔ)引擎更為方便簡(jiǎn)單。

MySQL的插件式存儲(chǔ)引擎主要包括MyISAM,Innodb,NDB Cluster,Maria,F(xiàn)alcon,Memory,Archive等,其中最著名而且使用最為廣泛的MyISAM 和Innodb兩種存儲(chǔ)引擎。MyISAM 是MySQL 最早的ISAM 存儲(chǔ)引擎的升級(jí)版本,也是MySQL 默認(rèn)的存儲(chǔ)引擎。而Innodb 實(shí)際上并不是MySQ 公司的,而是第三方軟件公司Innobase(在2005 年被Oracle 公司所收購(gòu))所開發(fā),其最大的特點(diǎn)是提供了事務(wù)控制等特性, 所以使用者也非常廣泛。

其他的一些存儲(chǔ)引擎相對(duì)來(lái)說(shuō)使用場(chǎng)景要稍微少一些,都是應(yīng)用于某些特定的場(chǎng)景,如NDB Cluster雖然也支持事務(wù),但是主要是用于分布式高可用集群環(huán)境。Maria是MySQL最新開發(fā)的對(duì)MyISAM的升級(jí)版存儲(chǔ)引擎,F(xiàn)alcon 是MySQL 公司自行研發(fā)的為了替代當(dāng)前的Innodb 存儲(chǔ)引擎的一款帶有事務(wù)等高級(jí)特性的數(shù)據(jù)庫(kù)存儲(chǔ)引擎。Memory 存儲(chǔ)引擎所有數(shù)據(jù)和索引均存儲(chǔ)于內(nèi)存中,僅保存.frm文件在硬盤,所以主要是用于一些臨時(shí)表,或者對(duì)性能要求極高,但是允許在Crash 的時(shí)候丟失數(shù)據(jù)的特定場(chǎng)景下,會(huì)消耗內(nèi)存較大。Archive 是一個(gè)數(shù)據(jù)經(jīng)過高比例壓縮存放的存儲(chǔ)引擎,僅支持insert,select,不支持update和delete,主要用于存放過期而且很少訪問的歷史信息,不支持索引。

MyISAM 存儲(chǔ)引擎簡(jiǎn)介:

MySQL存儲(chǔ)引擎是什么及作用

1、mysql5.1之前默認(rèn)存儲(chǔ)引擎。

2、MyISAM 存儲(chǔ)引擎的表在數(shù)據(jù)庫(kù)中,每一個(gè)表都被存放為三個(gè)以表名命名的物理文件。首先肯定會(huì)有任何存儲(chǔ)引擎都不可缺少的存放表結(jié)構(gòu)定義信息的.frm 文件,另外還有.MYD和.MYI 文件,分別存放了表的數(shù)據(jù)(.MYD)和索引數(shù)據(jù)(.MYI)。每個(gè)表都有且僅有這樣三個(gè)文件做為MyISAM 存儲(chǔ)類型的表的存儲(chǔ),也就是說(shuō)不管這個(gè)表有多少個(gè)索引,都是存放在同一個(gè).MYI 文件中。

3、MyISAM 支持以下三種類型的索引:

B-Tree 索引

B-Tree 索引,就是所有的索引節(jié)點(diǎn)都按照balance tree 的數(shù)據(jù)結(jié)構(gòu)來(lái)存儲(chǔ),所有的索引數(shù)據(jù)節(jié)點(diǎn)都在葉節(jié)點(diǎn)。

R-Tree 索引

R-Tree 索引的存儲(chǔ)方式和b-tree 索引有一些區(qū)別,主要設(shè)計(jì)用于為存儲(chǔ)空間和多維數(shù)據(jù)的字段做索引,所以目前的MySQL 版本來(lái)說(shuō),也僅支持geometry 類型的字段作索引。

Full-text 索引

Full-text 索引就是全文索引,他的存儲(chǔ)結(jié)構(gòu)也是b-tree。主要是為了解決在我們需要用like 查詢的低效問題。

MyISAM 上面三種索引類型中,最經(jīng)常使用的就是B-Tree 索引了,偶爾會(huì)使用到Fulltext,但是R-Tree 索引一般系統(tǒng)中都是很少用到的。另外MyISAM 的B-Tree 索引有一個(gè)較大的限制,那就是參與一個(gè)索引的所有字段的長(zhǎng)度之和不能超過1000 字節(jié)。

3、不支持事務(wù)

4、只有表鎖

5、如下情況會(huì)造成表?yè)p壞:

Mysqld正在寫入該表時(shí),被kill掉

主機(jī)宕機(jī)(Crash)

磁盤硬件故障

MyISAM存儲(chǔ)引擎的bug

6、雖然每一個(gè)MyISAM的表都是存放在一個(gè)相同后綴名的.MYD 文件中,但是每個(gè)文件的存放格式實(shí)際上可能并不是完全一樣的,因?yàn)镸yISAM 的數(shù)據(jù)存放格式是分為靜態(tài)(FIXED)固定長(zhǎng)度、動(dòng)態(tài)(DYNAMIC)可變長(zhǎng)度以及壓縮(COMPRESSED)這三種格式。當(dāng)然三種格式中是否壓縮是完全可以任由自己選擇的,可以在創(chuàng)建表的時(shí)候通過ROW_FORMAT 來(lái)指定{COMPRESSED | DEFAULT},也可以通過myisampack 工具來(lái)進(jìn)行壓縮,默認(rèn)是不壓縮的。而在非壓縮的情況下,是靜態(tài)還是動(dòng)態(tài),就和我們表中個(gè)字段的定義相關(guān)了。只要表中有可變長(zhǎng)度類型的字段存在,那么該表就肯定是DYNAMIC 格式的,如果沒有任何可變長(zhǎng)度的字段,則為FIXED 格式,當(dāng)然,你也可以通過alter table 命令,強(qiáng)行將一個(gè)帶有VARCHAR 類型字段的DYNAMIC 的表轉(zhuǎn)換為FIXED,但是所帶來(lái)的結(jié)果是原VARCHAR 字段類型會(huì)被自動(dòng)轉(zhuǎn)換成CHAR 類型。相反如果將FIXED 轉(zhuǎn)換為DYNAMIC,也會(huì)將CHAR 類型字段轉(zhuǎn)換為VARCHAR 類型,

知識(shí)點(diǎn)擴(kuò)展:如何根據(jù)表的記錄數(shù)量估算占用的磁盤空間

首先先算一個(gè)表中一行有多少個(gè)字節(jié)。

然后根據(jù)數(shù)據(jù)庫(kù)中的表每天增加多少行記錄,就能夠算出每天要增加多少硬盤空間,這樣就可根據(jù)數(shù)據(jù)量估算規(guī)劃多大的空間。

例如在數(shù)據(jù)庫(kù)test中創(chuàng)建一張tb1表

MySQL存儲(chǔ)引擎是什么及作用

執(zhí)行mysql>desc test1.tb1查看tb1的表結(jié)構(gòu)

MySQL存儲(chǔ)引擎是什么及作用

10個(gè)字節(jié)+20個(gè)字節(jié)+2個(gè)字節(jié)+20字節(jié)+8字節(jié)+8字節(jié)+100個(gè)字節(jié)=168字節(jié)

Tb1表的一個(gè)行有118個(gè)字節(jié)

如果每天增加10000條記錄,大約需要10000x168/1024/1024=1.6MB

這樣就可以根據(jù)每天增加的記錄數(shù),合理規(guī)劃好磁盤空間了

MyISAM 存儲(chǔ)引擎的某個(gè)表文件出錯(cuò)之后,僅影響到該表,而不會(huì)影響到其他表,更不會(huì)影響到其他的數(shù)據(jù)庫(kù)。如果我們的數(shù)據(jù)庫(kù)正在運(yùn)行過程中發(fā)現(xiàn)某個(gè)MyISAM 表出現(xiàn)問題了,則可以在線通過check table 命令來(lái)嘗試校驗(yàn)他,并可以通過repair table 命令來(lái)嘗試修復(fù)。在數(shù)據(jù)庫(kù)關(guān)閉狀態(tài)下,我們也可以通過myisamchk 工具來(lái)對(duì)數(shù)據(jù)庫(kù)中某個(gè)(或某些)表進(jìn)行檢測(cè)或者修復(fù)。不過強(qiáng)烈建議不到萬(wàn)不得已不要輕易對(duì)表進(jìn)行修復(fù)操作,修復(fù)之前盡量做好可能的備份工作,以免帶來(lái)不必要的后果。

Innodb 存儲(chǔ)引擎簡(jiǎn)介:

Innodb 之所以能如此受寵,主要是在于其功能方面的較多特點(diǎn):

1、支持事務(wù)

Innodb 在功能方面最重要的一點(diǎn)就是對(duì)事務(wù)的支持,這無(wú)疑是讓Innodb 成為MySQL最為流行的存儲(chǔ)引擎之一的一個(gè)非常重要原因。

2、鎖定機(jī)制的改進(jìn)

Innodb 改變了MyISAM 的鎖機(jī)制,實(shí)現(xiàn)了行鎖。

3、實(shí)現(xiàn)外鍵

Innodb 實(shí)現(xiàn)了外鍵引用這一數(shù)據(jù)庫(kù)的重要特性。

4、Innodb 存儲(chǔ)引擎也和MyISAM 不太一樣,雖然也有.frm 文件來(lái)存放表結(jié)構(gòu)定義相關(guān)的元數(shù)據(jù),但是表數(shù)據(jù)和索引數(shù)據(jù)是存放在一起的。至于是每個(gè)表單獨(dú)存放還是所有表存放在一起,完全由用戶來(lái)決定。

Innodb 的物理結(jié)構(gòu)分為兩大部分:

1、數(shù)據(jù)文件(表數(shù)據(jù)和索引數(shù)據(jù))

存放數(shù)據(jù)表中的數(shù)據(jù)和所有的索引數(shù)據(jù),包括主鍵和其他普通索引。在Innodb 中,存在了表空間(tablespace)這樣一個(gè)概念,但是他和Oracle 的表空間又有較大的不同。首先,Innodb 的表空間分為兩種形式。一種是共享表空間,也就是所有表和索引數(shù)據(jù)被存放在同一個(gè)表空間(一個(gè)或多個(gè)數(shù)據(jù)文件)中,通過innodb_data_file_path 來(lái)指定,增加數(shù)據(jù)文件需要停機(jī)重啟。另外一種是獨(dú)享表空間,也就是每個(gè)表的數(shù)據(jù)和索引被存放在一個(gè)單獨(dú)的.ibd 文件中。

雖然我們可以自行設(shè)定使用共享表空間還是獨(dú)享表空間來(lái)存放我們的表,但是共享表空間都是必須存在的,因?yàn)镮nnodb 的undo 信息和其他一些元數(shù)據(jù)信息都是存放在共享表空間里面的。共享表空間的數(shù)據(jù)文件是可以設(shè)置為固定大小和可自動(dòng)擴(kuò)展大小兩種形式的。

當(dāng)我們的文件表空間快要用完的時(shí)候,我們必須要為其增加數(shù)據(jù)文件,當(dāng)然,只有共享表空間有此操作。共享表空間增加數(shù)據(jù)文件的操作比較簡(jiǎn)單, 只需要在innodb_data_file_path 參數(shù)后面按照標(biāo)準(zhǔn)格式設(shè)置好文件路徑和相關(guān)屬性即可,不過這里有一點(diǎn)需要注意的,就是Innodb 在創(chuàng)建新數(shù)據(jù)文件的時(shí)候是不會(huì)創(chuàng)建目錄的,如果指定目錄不存在,則會(huì)報(bào)錯(cuò)并無(wú)法啟動(dòng)。

2、日志文件

Innodb 的日志文件和Oracle 的redo 日志比較類似,同樣可以設(shè)置多個(gè)日志組(最少2

個(gè)),同樣采用輪循策略來(lái)順序的寫入。

由于Innodb 是事務(wù)的存儲(chǔ)引擎,所以系統(tǒng)Crash(宕機(jī))對(duì)他來(lái)說(shuō)并不能造成非常嚴(yán)重的損失,由于有redo日志(即事物日志)的存在,有checkpoint 機(jī)制的保護(hù),Innodb 完全可以通過redo 日志將數(shù)據(jù)庫(kù)Crash 時(shí)刻已經(jīng)完成但還沒有來(lái)得及將數(shù)據(jù)寫入磁盤的事務(wù)恢復(fù),也能夠?qū)⑺胁糠滞瓿刹⒁呀?jīng)寫入磁盤的未完成事務(wù)回滾并將數(shù)據(jù)還原。

Innodb 不僅在功能特性方面和MyISAM 存儲(chǔ)引擎有較大區(qū)別,在配置上面也是單獨(dú)處理的。在MySQL 啟動(dòng)參數(shù)文件(/etc/my.cnf)設(shè)置中,Innodb 的所有參數(shù)基本上都帶有前綴“innodb_”,不論是innodb 數(shù)據(jù)和日志相關(guān),還是其他一些性能,事務(wù)等等相關(guān)的參數(shù)都是一樣。和所有Innodb 相關(guān)的系統(tǒng)變量一樣,所有的Innodb 相關(guān)的系統(tǒng)狀態(tài)值也同樣全部以“Innodb_”前綴。

MyISAM和InnoDB的區(qū)別

1、 MyISAM不支持事務(wù),而InnoDB支持。InnoDB的AUTOCOMMIT默認(rèn)是打開的,即每條SQL語(yǔ)句會(huì)默認(rèn)被封裝成一個(gè)事務(wù),自動(dòng)提交,這樣會(huì)影響速度,所以最好是把多條SQL語(yǔ)句顯示放在begin和commit之間,組成一個(gè)事務(wù)去提交。

MySQL存儲(chǔ)引擎是什么及作用

mysql> use test_db;

mysql> show tables;

mysql> desc tb1;

mysql> begin;

mysql> insert into tb1 values('lisi',1);

mysql> insert into tb1 values('zhangsan',2);

mysql> commit;

2、InnoDB支持?jǐn)?shù)據(jù)行鎖定,MyISAM不支持行鎖定,只支持鎖定整個(gè)表。即MyISAM同一個(gè)表上的讀鎖和寫鎖是互斥的,MyISAM并發(fā)讀寫時(shí)如果等待隊(duì)列中既有讀請(qǐng)求又有寫請(qǐng)求,默認(rèn)寫請(qǐng)求的優(yōu)先級(jí)高,即使讀請(qǐng)求先到,所以MyISAM不適合于有大量查詢和修改并存的情況,那樣查詢進(jìn)程會(huì)長(zhǎng)時(shí)間阻塞。因?yàn)镸yISAM是鎖表。

3、InnoDB支持外鍵,MyISAM不支持。

4、InnoDB不支持全文索引,而MyISAM支持。

二、Mysqlslap性能測(cè)試MySQL二種存儲(chǔ)引擎

mysqlslap是mysql自帶的基準(zhǔn)測(cè)試工具,優(yōu)點(diǎn):查詢數(shù)據(jù),語(yǔ)法簡(jiǎn)單,靈活容易使用.該工具可以模擬多個(gè)客戶端同時(shí)并發(fā)的向云服務(wù)器發(fā)出查詢更新,給出了性能測(cè)試數(shù)據(jù)而且提供了多種引擎的性能比較.msqlslap為mysql性能優(yōu)化前后提供了直觀的驗(yàn)證依據(jù),建議系統(tǒng)運(yùn)維和DBA人員應(yīng)該掌握一些常見的壓力測(cè)試工具,才能準(zhǔn)確的掌握線上數(shù)據(jù)庫(kù)支撐的用戶流量上限及其抗壓性等問題。

現(xiàn)在看一下這個(gè)壓力測(cè)試工具mysqlslap,關(guān)于他的選項(xiàng)手冊(cè)上以及--help介紹的很詳細(xì)。  
這里解釋一下一些常用的選項(xiàng)。    
--concurrency代表并發(fā)數(shù)量,多個(gè)可以用逗號(hào)隔開。例如:concurrency=50,100,200    
--engines代表要測(cè)試的引擎,可以有多個(gè),用分隔符隔開。    
--iterations代表要運(yùn)行這些測(cè)試多少次,即運(yùn)行多少次后,得到結(jié)果。    
--auto-generate-sql 代表用系統(tǒng)自己生成的SQL腳本來(lái)測(cè)試。    
--auto-generate-sql-load-type 代表要測(cè)試的是讀還是寫還是兩者混合的(read,write,update,mixed)    
--number-of-queries 代表總共要運(yùn)行多少次查詢。每個(gè)客戶運(yùn)行的查詢數(shù)量可以用查詢總數(shù)/并發(fā)數(shù)來(lái)計(jì)算。比如倒數(shù)第二個(gè)結(jié)果2=200/100。    
--debug-info 代表要額外輸出CPU以及內(nèi)存的相關(guān)信息(注:只有在MySQL用--with-debug編譯時(shí)可)。    
--number-int-cols 代表測(cè)試表中的INTEGER類型的屬性有幾個(gè)。    
--number-char-cols代表測(cè)試表的char類型字段的數(shù)量。    
--create-schema 代表自己定義的模式(在MySQL中也就是庫(kù)即創(chuàng)建測(cè)試的數(shù)據(jù)庫(kù))。    
--query 代表自己的SQL腳本。    
--only-print 如果只想打印看看SQL語(yǔ)句是什么,可以用這個(gè)選項(xiàng)。

--csv=name 生產(chǎn)CSV格式數(shù)據(jù)文件

查看Mysql數(shù)據(jù)庫(kù)默認(rèn)最大連接數(shù)

MySQL存儲(chǔ)引擎是什么及作用

可以看到mysql5.7.13默認(rèn)是151,注:不同版本默認(rèn)最大連接數(shù)不差別。一般生產(chǎn)環(huán)境是不夠的,在my.cnf [mysqld]下添加  max_connections=1024 增加到1024,重啟Mysql。

修改my.cnf文件并重起mysqld服務(wù)

MySQL存儲(chǔ)引擎是什么及作用

查看修改后的最大連接數(shù)

MySQL存儲(chǔ)引擎是什么及作用

查看Mysql默認(rèn)使用存儲(chǔ)引擎,如下查看:

mysql> show engines;

MySQL存儲(chǔ)引擎是什么及作用

現(xiàn)在我們來(lái)看一下具體測(cè)試的例子

[root@localhost ~]# mysqlslap --defaults-file=/etc/my.cnf --concurrency=100,200 --iterations=1 --number-int-cols=20 --number-char-cols=30 --auto-generate-sql --auto-generate-sql-add-autoincrement --auto-generate-sql-load-type=mixed --engine=myisam,innodb --number-of-queries=2000 -uroot -p123456 –verbose

顯示結(jié)果:

MySQL存儲(chǔ)引擎是什么及作用

測(cè)試說(shuō)明:模擬測(cè)試兩次讀寫并發(fā),第一次100,第二次200,自動(dòng)生成SQL腳本,測(cè)試表包含20個(gè)init字段,30個(gè)char字段,每次執(zhí)行2000查詢請(qǐng)求。測(cè)試引擎分別是myisam,innodb。

測(cè)試結(jié)果說(shuō)明:

Myisam第一次100客戶端同時(shí)發(fā)起增查用0.413/s,第二次200客戶端同時(shí)發(fā)起增查用0.509/s

Innodb第一次100客戶端同時(shí)發(fā)起增查用0.692/s,第二次200客戶端同時(shí)發(fā)起增查用0.617/s

由此可見MyISAM存儲(chǔ)引擎處理性能是最好的,也是最常用的,但不支持事務(wù)。InonDB存儲(chǔ)引擎提供了事務(wù)型數(shù)據(jù)引擎(ACID),在事務(wù)型引擎里使用最多的。具有事務(wù)回滾,系統(tǒng)修復(fù)等特點(diǎn)。

Mysqlslap測(cè)試工具生產(chǎn)CSV格式數(shù)據(jù)文件并轉(zhuǎn)換成圖表形式:

[root@localhost ~]# mysqlslap --defaults-file=/etc/my.cnf --concurrency=100,200 --iterations=1 --number-int-cols=20 --number-char-cols=30 --auto-generate-sql --auto-generate-sql-add-autoincrement --auto-generate-sql-load-type=mixed --engine=myisam,innodb --number-of-queries=2000 -uroot -p123456 --csv=/root/a.csv

執(zhí)行結(jié)果:

MySQL存儲(chǔ)引擎是什么及作用

將a.csv拷貝到windows主機(jī)上,打開并生成圖表

MySQL存儲(chǔ)引擎是什么及作用

用我們自己定義的SQL 腳本或語(yǔ)句來(lái)測(cè)試

首先準(zhǔn)備好要測(cè)試的數(shù)據(jù)庫(kù)表,這里我們編寫一個(gè)生成表的腳本去完成

腳本內(nèi)容如下:

[root@localhost ~]# cat /root/mysql3.sh

#!/bin/bash

HOSTNAME="localhost"

PORT="3306"

USERNAME="root"

PASSWORD="123.abc"

 

DBNAME="test1"

TABLENAME="tb1"

 

#create database

mysql -h ${HOSTNAME} -P ${PORT} -u${USERNAME} -p${PASSWORD} -e "drop database if exists ${DBNAME}"

create_db_sql="create database ifnot exists ${DBNAME}"

mysql -h ${HOSTNAME} -P ${PORT} -u${USERNAME} -p${PASSWORD} -e "${create_db_sql}"

 

#create table

create_table_sql="create table ifnot exists ${TABLENAME}(stuid int not null primary key,stuname varchar(20) notnull,stusex char(1) not null,cardid varchar(20) not null,birthdaydatetime,entertime datetime,address varchar(100) default null)"

mysql -h ${HOSTNAME} -P ${PORT} -u${USERNAME} -p${PASSWORD} ${DBNAME} -e "${create_table_sql}"

 

#insert data to table

i=1

while [ $i -le 20000 ]

do

insert_sql="insert into${TABLENAME} values($i,'zhangsan','1','1234567890123456','1999-10-10','2016-9-3','zhongguobeijingshi changpinqu')"

mysql -h ${HOSTNAME} -P ${PORT} -u${USERNAME} -p${PASSWORD} ${DBNAME} -e "${insert_sql}"

let i++

done

#select data

select_sql="select count(*) from${TABLENAME}"

mysql -h ${HOSTNAME} -P ${PORT} -u${USERNAME} -p${PASSWORD} ${DBNAME} -e "${select_sql}"

授權(quán)腳本x執(zhí)行權(quán)限

[root@localhost ~]# chmod +x/root/mysql3.sh

執(zhí)行腳本mysql3.sh生成mysqlslap工具需要的測(cè)試表

[root@localhost ~]# /root/mysql3.sh

 

執(zhí)行mysqlslap工具進(jìn)行測(cè)試

[root@localhost ~]#  mysqlslap --defaults-file=/etc/my.cnf--concurrency=10,20 --iterations=1 --create-schema='test1' --query='select *from test1.tb1' --engine=myisam,innodb --number-of-queries=2000 -uroot -p123456–verbose

顯示結(jié)果:

mysqlslap: [Warning] Using a password onthe command line interface can be insecure.

Benchmark

         Runningfor engine myisam

         Averagenumber of seconds to run all queries: 14.128 seconds

         Minimumnumber of seconds to run all queries: 14.128 seconds

         Maximumnumber of seconds to run all queries: 14.128 seconds

         Numberof clients running queries: 10

         Averagenumber of queries per client: 200

 

Benchmark

         Runningfor engine myisam

         Averagenumber of seconds to run all queries: 13.646 seconds

         Minimumnumber of seconds to run all queries: 13.646 seconds

         Maximumnumber of seconds to run all queries: 13.646 seconds

         Numberof clients running queries: 20

         Averagenumber of queries per client: 100

 

Benchmark

         Runningfor engine innodb

         Averagenumber of seconds to run all queries: 13.837 seconds

         Minimumnumber of seconds to run all queries: 13.837 seconds

         Maximumnumber of seconds to run all queries: 13.837 seconds

         Numberof clients running queries: 10

         Averagenumber of queries per client: 200

 

Benchmark

         Runningfor engine innodb

         Averagenumber of seconds to run all queries: 13.768 seconds

         Minimumnumber of seconds to run all queries: 13.768 seconds

         Maximumnumber of seconds to run all queries: 13.768 seconds

         Numberof clients running queries: 20

         Averagenumber of queries per client: 100

注:通過mysqlslap工具對(duì)mysql server進(jìn)行壓力測(cè)試,可以通過--concurrency、--number-of-queries等選項(xiàng)的值查看每次測(cè)試的結(jié)果,通過反復(fù)測(cè)試、優(yōu)化得出mysql server的最大并發(fā)數(shù)。

如果mysqlslap工具輸出結(jié)果為Segmentation fault (core dumped)基本表示走超出mysql server的負(fù)載。

MySQL存儲(chǔ)引擎是什么及作用就先給大家講到這里,對(duì)于其它相關(guān)問題大家想要了解的可以持續(xù)關(guān)注我們的行業(yè)資訊。我們的板塊內(nèi)容每天都會(huì)捕捉一些行業(yè)新聞及專業(yè)知識(shí)分享給大家的。


當(dāng)前文章:MySQL存儲(chǔ)引擎是什么及作用
網(wǎng)頁(yè)地址:http://weahome.cn/article/ggdsco.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部