SQLite資料庫與其它一些資料庫的效能比較

來源:互聯網
上載者:User
[轉]SQLite資料庫與其它一些資料庫的效能比較2007-06-18 18:40
本文轉載自:http://www.sqlite.com.cn/MySqlite/6/22.Html

SQLite資料庫與其它一些資料庫的效能比較

這是從一篇繁體blog中的文章:http://blog.joycode.com/fish/archive/2004/08/13/30653.aspx

MySQL(MyODBC/ByteFx), SQLite(V3), Access(2003), MSSQL(2000Sp3) 之間的效能測試

今天寫了一個簡單的測試程式,目的為瞭解自己目前所使用資料庫的效能, 並希望能從中調整出更好的結果。

下面是多次測試的結果:

測試環境: Windows2003, .NET Framework 1.1, no AntiVirus, 1GB memory
測試的資料庫: SQLite V3, MySQL Type=InnoDB, SQL Server 2000 Sp3, Access 20003
參數設定:

MySQL (預設*2)
max_allowed_packet=16M
key_buffer_size=16M
table_cache=128
sort_buffer_size=4M
其餘選項均為預設值。

資料庫的連接字串:
Private MSSQLConnStr As String = "initial catalog=CodeLib;Connect Timeout=20;data source=(local);integrated security=SSPI;persist security info=False;"
Private MySQLODBCConnStr As String = "DRIVER={MySQL ODBC 3.51 Driver};DATABASE=CodeLib;OPTION=18475;SERVER=localhost;UID=;PASSWORD=;"   
Private MySQLByteFXConnStr As String = "Database=CodeLib;Data Source=localhost;User Id=;Password="
Private OLEDBConnStr As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=1.mdb"
Private SQLiteConnStr As String = "Data Source=;New=True;Version=3"
    
INSERT with Transaction 10000筆記錄:

00.6089(SQLite) < 01.1677(MSSQL) < 02.5346(ByteFx) < 08.9000(Access) < 13.9242(MyODBC) 0~10000
00.5476(SQLite) < 01.2679(MSSQL) < 02.4982(ByteFx) < 08.6672(Access) < 13.5140(MyODBC) 10000~20000
00.5245(SQLite) < 01.1508(MSSQL) < 02.5150(ByteFx) < 08.7101(Access) < 13.6411(MyODBC) 20000~30000

INSERT with Transaction 50000筆記錄:

03.4739(SQLite) < 09.4173(MSSQL) < 13.6408(ByteFx) < 44.3165(Access) < 71.6529(MyODBC) 50000

INSERT without Transaction 300筆記錄:
00.0908(MSSQL) < 00.3520(Access) < 10.3717(MyODBC) < 11.5118(ByteFx) < 25.8230(SQLite) 30000~30300
00.0907(MSSQL) < 00.3686(Access) < 08.7148(ByteFx) < 11.3625(MyODBC) < 25.1898(SQLite) 30300~30600
00.1027(MSSQL) < 00.3595(Access) < 08.4664(ByteFx) < 08.7934(MyODBC) < 25.3364(SQLite) 30600~31200

SELECT 31200筆記錄:

00.4161(SQLite) < 00.8362(MSSQL) < 00.8688(Access) < 02.3565(MyODBC) < 02.4857(ByteFx)
00.3519(SQLite) < 00.5707(Access) < 00.7055(MSSQL) < 02.5555(MyODBC) < 02.6173(ByteFx)
00.3472(SQLite) < 00.6037(MSSQL) < 00.6707(Access) < 02.5439(ByteFx) < 02.6328(MyODBC)

SELECT 50000筆記錄:

00.6129(SQLite) < 01.0132(MSSQL) < 01.2942(Access) < 04.0064(ByteFx) < 04.4904(MyODBC)
00.6741(SQLite) < 00.9719(MSSQL) < 01.2956(Access) < 03.7336(ByteFx) < 04.6592(MyODBC)

DELETE 31200筆記錄:

00.0091(Access) < 00.0247(ByteFx) < 00.1960(SQLite) < 00.6901(MSSQL) < 01.2297(MyODBC)

DELETE 50000筆記錄:

00.0092(Access) < 00.0301(ByteFx) < 00.3305(SQLite) < 01.9281(MyODBC) < 03.0269(MSSQL)

從上面結果看出:

SQLite3 在不執行行交易處理的情況下不是很理想, 但SELECT速度相當快。

MSSQL/Access無論是否執行交易處理的效能都相當不錯。

MySQL的ByteFx與MyODBC在Insert/Delete的速度上差異略為明顯。

以上資料僅供參考, 如果您對結果有更好的建議也請讓我知道。

sqlite在不開事務的情況下就是一種悲劇,因為它的多訪問支援是建立在對檔案的獨佔和共用基礎上的。

SQLite與其它資料庫的效能比較可參看官方網:http://www.sqlite.org/speed.html

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.