我有sqlite
数据库73 MB
当我从硬盘运行我的应用程序时,它的第一个查询速度很快,但是当我运行我的应用程序表格时,第一次查询需要大约30秒才能运行
所以我想问一下当我的应用程序运行DVD时究竟发生了什么?
我可以通过吐出数据库将数据库的第一次查询速度提高到一些小部分吗?
这是我的疑问:
var SQlQuery = string.Format("SELECT ContentText FROM TblBookContent " +
"WHERE (BookID = {0}) AND (BookContentIndex={1}) Limit 1", bookid, BookContentIndex);
string ConString = string.Format("Data Source={0}{1}.s3db;Version = 3;",
CFAddress.ADatabase, DBName.BooksDB);
using (SQLiteConnection connection = new SQLiteConnection(ConString))
{
connection.Open();
using (SQLiteCommand command = new SQLiteCommand(SQlQuery, connection))
{
using (SQLiteDataReader reader = command.ExecuteReader())
{
while (reader.Read())
{
CHtmlDesign.HtmlFile = reader["ContentText"].ToString();
}
}
}
connection.Close();
}
答案 0 :(得分:3)
我猜它更多的是与DVD驱动器上的寻道时间相比。与硬盘相比,CD和DVD的寻道时间相当慢(HDD转速为5000+ RPM,数据库服务器通常配备旋转速度超过11000RPM的HDD),而CD和DVD旋转速度更慢,速度可变(大约250 CD为500RPM,DVD为600至1300RPM)
这些RPM部分决定了寻道时间,因为如果你需要磁盘另一部分的数据,你必须加速或减慢到正确的旋转速度,并等待你要回到的磁盘部分。读头。如果你没有及时将读头移动到磁盘的一部分,你必须等待另一次旋转。
CD和DVD非常擅长线性访问(例如音频或视频录制),但由于需要时间来查找所需信息,因此无法随机访问。