我将180个平铺的图像数据存储到MySQL数据库中。每块瓷砖大约10KB。
当我尝试使用ONE连接和SINGLE查询从MySQL数据库中获取所有切片时,它需要200毫秒,这对我来说非常慢。
有没有办法让它更快?
这是我的“ filedata ”表格。 (我尝试过MyISAM和INNODB。结果是一样的:()
id (int) **PrimaryKey**
layerid (int)
channelid (int)
stratumid (int)
x (int)
y (int)
tiledata (MEDIUMBLOB)
这是我用于测试查询的控制台应用程序。
Console.ReadKey();
Stopwatch swx = new Stopwatch();
swx.Start();
MySqlConnection conn = new MySqlConnection("Server=127.0.0.1;Port=3306;Database=trying;Uid=root;Pwd=;Encrypt=false;AllowUserVariables=True;UseCompression=True;");
conn.Open();
Console.WriteLine("Connection open.");
swx.Stop();
Console.WriteLine("Conn Open Time = " + swx.ElapsedMilliseconds.ToString());
Console.ReadKey();
Stopwatch sw = new Stopwatch();
sw.Start();
MySqlCommand com = conn.CreateCommand();
com.CommandText = "SELECT filedata FROM filedata where layerid = '5'";
MySqlDataReader reader = com.ExecuteReader();
while (reader.Read())
{
byte[] b = (byte[])reader[0];
}
reader.Close();
sw.Stop();
Console.WriteLine("Time= " + sw.ElapsedMilliseconds.ToString());
Console.ReadKey();
我的电脑是;
处理器:i7 2,67 Ghz, RAM:6 GB, HDD:1 TB SSD。