Слишком медленное отображение данных в datagrid

У меня есть datagrid (WPF/С#), который вытягивает два поля из довольно большого представления 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();
}
2 ответа

Вы можете ввести пейджинг в сетку и только извлечь из базы данных записи, которые вы собираетесь отображать. Другим подходом было бы извлечение данных, кеширование и доступ к кешу, но в этом случае первый тайм-раунд все равно будет медленным.

Проблема с извлечением большого набора данных я бы рассмотрел только для извлечения элементов для текущей страницы.

С MySQL вы можете сделать это в следующем подходе

SELECT * FROM [TABLE] LIMIT 5,10;


Какая часть замедляется? Вы пытались вовремя запросить SQL?

Никогда не использовали MySQL таким образом, но обычные методы оптимизации - это хранимые процедуры и индексы.

Если вы действительно не хотите отображать все записи на одной странице, вам следует подумать о добавлении разбивки на страницы в свой запрос.

licensed under cc by-sa 3.0 with attribution.