mysql sqlite 性能优化_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

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。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值