国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 數(shù)據(jù)庫(kù) > SQLite > 正文

SQLite與其他數(shù)據(jù)庫(kù)的速度比較(2)

2024-09-07 00:10:04
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

測(cè)試2:在事務(wù)處理程序中的 25000 INSERTs

BEGIN;
CREATE TABLE t2(a INTEGER, b INTEGER, c VARCHAR(100));
INSERT INTO t2 VALUES(1,59672,'fifty nine thousand six hundred seventy two');
... 24997 lines omitted
INSERT INTO t2 VALUES(24999,89569,'eighty nine thousand five hundred sixty nine');
INSERT INTO t2 VALUES(25000,94666,'ninety four thousand six hundred sixty six');
COMMIT;
PostgreSQL: 4.900
MySQL: 2.184
SQLite 2.7.6: 0.914
SQLite 2.7.6 (nosync): 0.757

當(dāng)所有的INSERTs被放入一個(gè)事務(wù)處理程序時(shí),SQLite不在需要關(guān)閉再打開(kāi)數(shù)據(jù)庫(kù),或者使各個(gè)語(yǔ)句間的高速緩存器無(wú)效。在結(jié)束之前它也不用再執(zhí)行fsync()s。當(dāng)解決了這個(gè)問(wèn)題后SQLite 比PostgreSQL和MySQL快很多。.

測(cè)試 3: 在編入索引表格中的25000 INSERTs

BEGIN;
CREATE TABLE t3(a INTEGER, b INTEGER, c VARCHAR(100));
CREATE INDEX i3 ON t3(c);
... 24998 lines omitted
INSERT INTO t3 VALUES(24999,88509,'eighty eight thousand five hundred nine');
INSERT INTO t3 VALUES(25000,84791,'eighty four thousand seven hundred ninety one');
COMMIT;
PostgreSQL: 8.175
MySQL: 3.197
SQLite 2.7.6: 1.555
SQLite 2.7.6 (nosync): 1.402

有報(bào)告說(shuō)SQLite在編入索引的表格中表現(xiàn)的不是很好。這個(gè)測(cè)試證明事實(shí)不是這樣的,雖然SQLite在創(chuàng)建索引登錄時(shí)不是很快,但它整體的速度仍是比PostgreSQL和MySQL快。

測(cè)試 4:沒(méi)有索引的 100 SELECTs

BEGIN;
SELECT count(*), avg(b) FROM t2 WHERE b>=0 AND b<1000;
SELECT count(*), avg(b) FROM t2 WHERE b>=100 AND b<1100;
... 96 lines omitted
SELECT count(*), avg(b) FROM t2 WHERE b>=9800 AND b<10800;
SELECT count(*), avg(b) FROM t2 WHERE b>=9900 AND b<10900;
COMMIT;
PostgreSQL: 3.629
MySQL: 2.760
SQLite 2.7.6: 2.494
SQLite 2.7.6 (nosync): 2.526

這個(gè)測(cè)試是在一個(gè)沒(méi)有索引的25000登錄表格中進(jìn)行100查詢,所以需要瀏覽一個(gè)完整的表格。 SQLite之前的版本在這個(gè)測(cè)試上比PostgreSQL和MySQL慢,但最新版本的SQLite是比前兩者都快的。

測(cè)試5: 在一個(gè)字符串比較上的100 SELECTs

BEGIN;
SELECT count(*), avg(b) FROM t2 WHERE c LIKE '%one%';
SELECT count(*), avg(b) FROM t2 WHERE c LIKE '%two%';
... 96 lines omitted
SELECT count(*), avg(b) FROM t2 WHERE c LIKE '%ninety nine%';
SELECT count(*), avg(b) FROM t2 WHERE c LIKE '%one hundred%';
COMMIT;
PostgreSQL: 13.409
MySQL: 4.640
SQLite 2.7.6: 3.362
SQLite 2.7.6 (nosync): 3.372

這個(gè)測(cè)試瀏覽 100 完整表格,但它使用字符串比較,而不是數(shù)字比較。This test still does 100 full table scans but it uses uses string comparisons instead of numerical comparisons. SQLite 比PostgreSQL快三倍,比MYSQL快30%。

Test 6: Creating an index

CREATE INDEX i2a ON t2(a);
CREATE INDEX i2b ON t2(b);
PostgreSQL: 0.381
MySQL: 0.318
SQLite 2.7.6: 0.777
SQLite 2.7.6 (nosync): 0.659
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 莲花县| 抚州市| 宜春市| 白水县| 安图县| 瑞安市| 肇庆市| 浦县| 蒙阴县| 大宁县| 石台县| 杭州市| 阿巴嘎旗| 陵川县| 吴川市| 南通市| 临洮县| 原平市| 商河县| 玉门市| 都安| 无为县| 巴东县| 营山县| 永胜县| 福泉市| 崇左市| 布拖县| 南康市| 桃源县| 南通市| 天柱县| 丽水市| 高雄县| 兴业县| 红桥区| 清水河县| 修武县| 雷山县| 泗水县| 汾阳市|