mysql引擎效能簡單測試

2021-08-23 12:45:58 字數 3515 閱讀 4670

[硬體配置]

cpu : amd2500+ (1.8g)

記憶體: 1g/現代

硬碟: 80g/ide

[軟體配置]

os : windows xp sp2

se : php5.2.1

db : mysql5.0.37

web: iis6

[mysql表結構]

create table `myisam`(

`id` int(11) not null auto_increment,

`name` varchar(100) default null,

`content` text,

primarykey (`id`)

) engine=myisamdefault charset=gbk;

create table `innodb`(

`id` int(11) not null auto_increment,

`name` varchar(100) default null,

`content` text,

primarykey (`id`)

) engine=innodbdefault charset=gbk;

[資料內容]

$name ="heiyeluren";

$content= "mysql支援數個儲存引擎作為對不同表的型別的處理器。mysql儲存引擎包括處理事務安全表的引擎和處理非事務安全表的引擎:

· myisam

管理非事務表。它提供高速儲存和檢索,以及全文搜尋能力。

myisam

在所有mysql

配置裡被支援,它是預設的儲存引擎,除非你配置

mysql

預設使用另 外乙個引擎。

·memory

儲存引擎提供「記憶體中」表。

merge

儲存引擎允許集合將被處理同樣的

myisam

表作為乙個單獨的表。就像

myisam

一樣,memory和merge儲存引擎處理非事務表,這兩個引擎也都被預設包含在mysql中。釋:memory儲存引擎正式地被確定為heap引擎。

· innodb

和bdb

儲存引擎提供事務安全表。

bdb被包含在為支援它的作業系統發布的mysql-max二進位制分發版裡。innodb也預設被包括在所有mysql 5.1二進位制分發版裡,你可以按照喜好通過配置mysql來允許或禁止任一引擎。

·example

儲存引擎是乙個「存根」引擎,它不做什麼。你可以用這個引擎建立表,但沒有資料被儲存於其中或從其中檢索。這個引擎的目的是服務,在mysql源**中的乙個例子,它演示說明如何開始編寫新儲存引擎。同樣,它的主要興趣是對開發者。";

[插入資料-1](innodb_flush_log_at_trx_commit=1)

myisam 1w:3/s

innodb 1w:219/s

myisam 10w:29/s

innodb 10w:2092/s

myisam 100w:287/s

innodb 100w:沒敢測試

[插入資料-2](innodb_flush_log_at_trx_commit=0)

myisam 1w:3/s

innodb 1w:3/s

myisam 10w:30/s

innodb 10w:29/s

myisam 100w:273/s

innodb 100w:423/s

[插入資料3](innodb_buffer_pool_size=1024m)

innodb 1w:3/s

innodb 10w:33/s

innodb 100w:607/s

[插入資料4](innodb_buffer_pool_size=256m, innodb_flush_log_at_trx_commit=1, setautocommit=0)

innodb 1w:3/s

innodb 10w:26/s

innodb 100w:379/s

[mysql 配置檔案] (預設配置)

# mysql serverinstance configuration file

[client]

port=3306

[mysql]

default-character-set=gbk

[mysqld]

port=3306

basedir="c:/mysql50/"

datadir="c:/mysql50/data/"

default-character-set=gbk

default-storage-engine=innodb

sql-mode="strict_trans_tables,no_auto_create_user,no_engine_substitution"

max_connections=100

query_cache_size=0

table_cache=256

tmp_table_size=50m

thread_cache_size=8

myisam_max_sort_file_size=100g

myisam_max_extra_sort_file_size=100g

myisam_sort_buffer_size=100m

key_buffer_size=82m

read_buffer_size=64k

read_rnd_buffer_size=256k

sort_buffer_size=256k

innodb_additional_mem_pool_size=4m

innodb_flush_log_at_trx_commit=1

innodb_log_buffer_size=2m

innodb_buffer_pool_size=159m

innodb_log_file_size=80m

innodb_thread_concurrency=8

【總結】

可以看出 在mysql5.0裡面,myisam和innodb儲存引擎效能差別並不是很大,針對innodb來說,影響效能的主要是innodb_flush_log_at_trx_commit這個選項,如果設定為1的話,那麼每次插入資料的時候都會自動提交,導致效能急劇下降,應該是跟重新整理日誌有關係,設定為0效率能夠看到明顯提公升,當然,同樣你可以sql中提交「setautocommit = 0」來設定達到好的效能。另外,還聽說通過設定innodb_buffer_pool_size能夠提公升innodb的效能,但是我測試發現沒有特別明顯的提公升。

基本上我們可以考慮使用innodb來替代我們的myisam引擎了,因為innodb自身很多良好的特點,比如事務支援、儲存過程、檢視、行級鎖定等等,在併發很多的情況下,相信innodb的表現肯定要比myisam強很多,當然,相應的在my.cnf中的配置也是比較關鍵的,良好的配置,能夠有效的加速你的應用。

如果不是很複雜的web應用,非關鍵應用,還是可以繼續考慮myisam的,這個具體情況可以自己斟酌。

mysql引擎測試 mysql引擎效能簡單測試

硬體配置 cpu amd2500 1.8g 記憶體 1g 現代 硬碟 80g ide 軟體配置 os windows xp sp2 se php5.2.1 db mysql5.0.37 web iis6 mysql表結構 create table myisam id int 11 not null ...

mysql引擎效能簡單測試

硬體配置 cpu amd2500 1.8g 記憶體 1g 現代 硬碟 80g ide 軟體配置 os windows xp sp2 se php5.2.1 db mysql5.0.37 web iis6 mysql表結構 create table myisam id int 11 not null ...

MySQL8效能測試三(myisam引擎)

從mysql 8.0版本開始,就不允許建立 myisam 分割槽表了,只允許建立已經實現了本地分割槽策略的引擎。到目前為止,只有innodb和ndb這兩個引擎支援本地分割槽策略。create table t i int engine myisam 在mysql 8.0中,通常需要使用它 engine...