BEGIN;
UPDATE t2 SET b=468026 WHERE a=1;
UPDATE t2 SET b=121928 WHERE a=2;
... 24996 lines omitted
UPDATE t2 SET b=35065 WHERE a=24999;
UPDATE t2 SET b=347393 WHERE a=25000;
COMMIT;
| PostgreSQL: | 18.797 |
| MySQL: | 8.134 |
| SQLite 2.7.6: | 3.520 |
| SQLite 2.7.6 (nosync): | 3.104 |
测试10: 有索引的25000 text UPDATEs
BEGIN;
UPDATE t2 SET c='one hundred forty eight thousand three hundred eighty two' WHERE a=1;
UPDATE t2 SET c='three hundred sixty six thousand five hundred two' WHERE a=2;
... 24996 lines omitted
UPDATE t2 SET c='three hundred eighty three thousand ninety nine' WHERE a=24999;
UPDATE t2 SET c='two hundred fifty six thousand eight hundred thirty' WHERE a=25000;
COMMIT;
| PostgreSQL: | 48.133 |
| MySQL: | 6.982 |
| SQLite 2.7.6: | 2.408 |
| SQLite 2.7.6 (nosync): | 1.725 |
在这个测试中,PostgreSQL也很慢,一个有经验的管理者可以通过调试服务器使之运行的快些。
Test 11: 来于SELECT的INSERTs
BEGIN;
INSERT INTO t1 SELECT b,a,c FROM t2;
INSERT INTO t2 SELECT b,a,c FROM t1;
COMMIT;
| PostgreSQL: | 61.364 |
| MySQL: | 1.537 |
| SQLite 2.7.6: | 2.787 |
| SQLite 2.7.6 (nosync): | 1.599 |
测试 12: 没有索引的DELETE
DELETE FROM t2 WHERE c LIKE '%fifty%';
| PostgreSQL: | 1.509 |
| MySQL: | 0.975 |
| SQLite 2.7.6: | 4.004 |
| SQLite 2.7.6 (nosync): | 0.560 |
测试 13: 有索引的DELETE
DELETE FROM t2 WHERE a>10 AND a<20000;
| PostgreSQL: | 1.316 |
| MySQL: | 2.262 |
| SQLite 2.7.6: | 2.068 |
| SQLite 2.7.6 (nosync): | 0.752 |
测试 14: 一个大 DELETE之后的一个大INSERT
INSERT INTO t2 SELECT * FROM t1;
| PostgreSQL: | 13.168 |
| MySQL: | 1.815 |
| SQLite 2.7.6: | 3.210 |
| SQLite 2.7.6 (nosync): | 1.485 |
测试 15: 一个大的DELETE及许多小INSERTs
BEGIN;
DELETE FROM t1;
INSERT INTO t1 VALUES(1,10719,'ten thousand seven hundred nineteen');
... 11997 lines omitted
INSERT INTO t1 VALUES(11999,72836,'seventy two thousand eight hundred thirty six');
INSERT INTO t1 VALUES(12000,64231,'sixty four thousand two hundred thirty one');
COMMIT;
| PostgreSQL: | 4.556 |
| MySQL: | 1.704 |
| SQLite 2.7.6: | 0.618 |
| SQLite 2.7.6 (nosync): | 0.406 |
测试 16: DROP TABLE
DROP TABLE t1;
DROP TABLE t2;
DROP TABLE t3;
| PostgreSQL: | 0.135 |
| MySQL: | 0.015 |
| SQLite 2.7.6: | 0.939 |
| SQLite 2.7.6 (nosync): | 0.254 |
但是,撤销表格并不是一个常用的操作,所以SQLite慢一些也不会有什么问题。
参考文档:
SQLite与其他数据库的速度比较
SQLite与其他数据库的速度比较(二)
SQLite与其他数据库的速度比较(三)

RSS订阅