我有一个数据网格(WPF / C#),它从相当大的MySQL视图中提取了两个字段。但是,渲染到屏幕上需要太长时间,我想知道是否有更快的方法?
private void SetupDataGrid()
{
try
{
_con.Open();
var com = new MySqlCommand("SELECT `Record ID`, `Company Name` FROM tblTest.all;") { Connection = _con, CommandType = CommandType.Text };
var dt = new DataTable();
var sdt = new MySqlDataAdapter(com);
sdt.Fill(dt);
DataGridActivities.DataContext = dt;
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
_con.Close();
}
答案 0 :(得分:2)
您可以在网格中引入分页,并且只从数据库中提取您要显示的记录。另一种方法是提取数据,缓存数据,然后访问缓存 - 但在这种情况下,第一轮时间仍然很慢。
如果提取大数据集是个问题,我会考虑只提取当前页面的项目。
使用MySQL,您可以通过以下方法执行此操作
SELECT * FROM [TABLE] LIMIT 5,10;
答案 1 :(得分:0)
哪个部分正在放慢速度?您是否尝试过SQL查询的时间?
从未以这种方式使用MySQL,但通常的优化技巧是stored procedures和indexes。
除非您确实想要在同一页面中显示所有记录,否则您应该考虑adding pagination in your query。