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

2021-10-19 22:14:35 字數 3403 閱讀 6831

[硬體配置]

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的,這個具體情況可以自己斟酌。

分享到:

2009-01-11 20:41

瀏覽 584

mysql儲存引擎靜態表 mysql儲存引擎

儲存引擎是mysql資料庫最重要的特性之一,使用者可以根據自身需求選擇合適的儲存引擎,例如 是否支援事務 批量插入速度 行級鎖或者表級鎖等相關特性。mysql預設支援很多種不同的儲存引擎,使用者在建立表的時候根據表的作用可以指定不同的儲存引擎。在mysql5.5之前預設儲存引擎都是myisam,5....

mysql儲存引擎用的多 MySQL儲存引擎知多少

mysql是我們經常使用的資料庫處理系統 dbms 不知小夥伴們有沒有注意過其中的 儲存引擎 storage engine 呢?有時候面試題中也會問道mysql幾種常用的儲存引擎的區別。這次就簡短侃一下儲存引擎那些事兒。先去查一下 引擎 概念。引擎 engine 是電子平台上開發程式或系統的核心元件...

mysql 自定義儲存引擎 MySQL儲存引擎

在mysql中,不需要在整個伺服器中使用同一種儲存引擎,針對具體的要求,可以對每乙個表使用不同的儲存引擎。一 myisam 1.不支援事務,也不支援外來鍵,但訪問速度快,對事務完整性沒有要求或者以select insert為主的應用基本都可以使用這個引擎來建立表。2.使用myisam引擎建立資料庫表...