日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

qt中的mysql能存入多少行数据_Qt中提高sqlite的读写速度(使用事务一次性写入100万条数据)...

發(fā)布時間:2024/7/19 数据库 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 qt中的mysql能存入多少行数据_Qt中提高sqlite的读写速度(使用事务一次性写入100万条数据)... 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

SQLite數(shù)據(jù)庫本質上來講就是一個磁盤上的文件,所以一切的數(shù)據(jù)庫操作其實都會轉化為對文件的操作,而頻繁的文件操作將會是一個很好時的過程,會極大地影響數(shù)據(jù)庫存取的速度。例如:向數(shù)據(jù)庫中插入100萬條數(shù)據(jù),在默認的情況下如果僅僅是執(zhí)行query.exec("insert into DataBase(......) values(......)");就會打開和關閉文件100萬次,所以速度當然會很慢。SQLite數(shù)據(jù)庫是支持事務操作的,于是我們就可以通過事務來提高數(shù)據(jù)庫的讀寫速度。事務的基本原理是:數(shù)據(jù)庫管理系統(tǒng)首先會把要執(zhí)行的sql語句存儲到內存當中,只有當commit()的時候才一次性全部執(zhí)行所有內存中的數(shù)據(jù)庫。下面是一個簡單的QT sqlite數(shù)據(jù)庫事務的例子:

#include

#include

#include

using namespace std;

int main(int argc, char *argv[])

{

QCoreApplication a(argc, argv);

QSqlDatabase??? db_sqlite = QSqlDatabase::addDatabase("QSQLITE", "connSQLite");

db_sqlite.setDatabaseName("SQLiteDB.db3");

db_sqlite.open();

QSqlQuery?? query("", db_sqlite);

bool??? bsuccess = false;

QTime??? tmpTime;

// 開始啟動事務

db_sqlite.transaction();

tmpTime.start();

for(int i = 0; i<100000; i++)

{

bsuccess = query.exec("insert into DataBase(D_1,D_2,D_3,D_4,D_5) values('TT','TT','TT','TT','TT')");

if (!bsuccess)

{

cout<

break;

}

}

// 提交事務,這個時候才是真正打開文件執(zhí)行SQL語句的時候

db_sqlite.commit();

cout<

}

其實QT 操作sqlite數(shù)據(jù)庫增加事務的功能就是上面例子中藍色字體標出的兩句話,如果去掉這兩句話,程序又會還原為:打開文件——執(zhí)行 query.exec(...)——關閉文件。大家可以試一下,添加這兩句即增加事務以后數(shù)據(jù)插入的速度明顯提高很多。

在入庫和更新過程中按照數(shù)據(jù)庫事務的思想進行設計:SQLite執(zhí)行入庫、更新操作的方式是,sql語句執(zhí)行對象句柄調用庫函數(shù)打開文件、調用函數(shù)執(zhí)行sql語句、關閉文件。這樣的執(zhí)行方式對于數(shù)量級別超大的文件的弊端就是每次執(zhí)行sql語句的時候都要打開文件(假設百萬級數(shù)量級的數(shù)據(jù),就要打開和關閉文件百萬次),對于數(shù)據(jù)庫的入庫和更新操作時間主要都浪費到了文件的打開和關閉操作上,所以這里增加事務以解決該問題。

http://cdn.verydemo.com/demo_c278_i9327.html

總結

以上是生活随笔為你收集整理的qt中的mysql能存入多少行数据_Qt中提高sqlite的读写速度(使用事务一次性写入100万条数据)...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。