Я совсем новичок в MySQL, поэтому, пожалуйста, потерпите меня ...
У меня есть лист Excel, который запрашивает базу данных MySQL ... Вот часть запроса (запускается из макроса VBA):
...
sql_query = "SELECT SQL_CACHE g.Id, g.Client, g.text_parsing FROM `global`.`tbl_cots` AS g WHERE g.Client LIKE '" & strClient & "%' GROUP BY g.Id;"
With rsPubs
.ActiveConnection = oConn
.Open sql_query
' Copy the records into cell A5
Range("A5").CopyFromRecordset rsPubs
...
База данных содержит 1,3 миллиона строк.
Когда запрос определенного клиента (найдено 14000 строк) занимает около 10 секунд, чтобы отобразить ...
Если совпадающих записей мало, он отображается быстрее (<2 секунды) </p>
Я так понимаю, что чем больше количество возвращенных записей, тем больше времени требуется для отображения.
Однако, если я выполняю тот же запрос (возвращается 14000 строк) с MySQL Query Browser, 14000 записейпоказывается мгновенно.
Любые идеи, как сделать так, чтобы VBA-запрос выполнялся так же быстро, или это одно из ограничений использования Excel / VBA для непосредственного запроса к базе данных MySQL?
Я довольно запутался, как Insertingчерез VBA (из Excel) мне удается вставить> 10000 записей за 2 секунды .... Я не могу понять, почему SELECT занимает так много времени для запуска ...
ps поле 'client' проиндексировано
Заранее спасибо
ОБНОВЛЕНИЕ Я получал доступ к базе данных через IP (для имитации доступа к базе данных «извне / удаленно»).Изменил DNS на localhost и получил результаты почти мгновенно.
Итак ... есть ли способ ускорить SELECT при удаленном доступе к базе данных?