MySQL和Sqlite3效能測試

2021-08-18 17:19:47 字數 1284 閱讀 6156

測試條件:[email protected],普通機械硬碟。

mysql: 5.0.45-community-nt,32bit, innodb引擎,innodb_flush_log_at_trx_commit=0

sqlite3: synchronous=off,lockingmode = exclusive

tablescript:

mysql:

create table `test` (

`id` int(10) unsigned not null auto_increment,

`name` varchar(32) not null,

`password` varchar(32) not null,

`email` varchar(64) default null,

`mobile` varchar(20) default null,

primary key  (`id`),

key `idx_name` using btree (`name`),

key `idx_mobile` (`mobile`)

) engine=innodb auto_increment=1 default charset=utf8;

sqlite3:

create table indy(id integer primary key autoincrement, name text collate nocase, password text collate nocase, email text collate nocase, mobile text collate nocase);

create index "idx_indy_mobile" on "indy" ("mobile" asc);

create index "idx_indy_name" on "indy" ("name" asc);

特別說明一下:

name和mobile欄位都有索引,沒有索引這種情況不做測試,原因不解釋。

mysql插入10萬條記錄,開啟transaction,cachedupdates。

耗時:8.654s,qps=11555

sqlite3插入10萬條記錄,

耗時:1.60s,qps=62471

測試結論:

62471/11555=5.43

1.單純看插入效能的話,優化過的sqlite大約比mysql快5倍以上。

2.不使用索引的話,sqlite3每秒插入二三十萬記錄很輕鬆(機械硬碟)。

3.對於特殊部分的應用,如果有需要的話,建議試試sqlite3。

MySQL和Sqlite3 效能測試對比

測試條件 i5 4460 3.2g,普通機械硬碟。mysql 5.0.45 community nt,32bit,innodb引擎,innodb flush log at trx commit 0 sqlite3 synchronous off,lockingmode exclusive table...

SQLite3效能優化

sqlite3效能調整主要通過pragma指令來實現。比如調整 空間釋放 磁碟同步 cache大小等。一.空間釋放 1.如何查詢 pragma auto vacuum 含義 查詢資料庫的auto vacuum標記。2.標記含義 auto vacuum標記的含義 正常情況下,當提交乙個從資料庫中刪除資...

rails使用sqlite3和mysql的問題

1 如果使用sqlite3時出現如下錯誤 failsafe thu jul 30 22 16 15 0800 2009 status 500 internal server error unknown error c ruby lib ruby 1.8 dl import.rb 29 in init...