Избегайте запрашивать MySQL DB из Access при сортировке - PullRequest
0 голосов
/ 06 июля 2010

У меня есть веб-интерфейс MS Access и MySQL. Все работает хорошо, но я стараюсь избегать следующего. В форме доступа я использую ее для выполнения запросов на чтение. Как только результаты отображаются в форме доступа (в формате Excel), я могу сортировать A-Z, Z-A и т. Д.

Дело в том, что каждый раз, когда я делаю какую-либо сортировку, я вижу в MySQL Administrator, что выполняется запрос (на самом деле более одного). Мне нужно избегать этого по понятным причинам, так как я, пользователь, буду постоянно выполнять сортировку и все виды вещей с отображаемыми данными.

Поскольку данные уже отображаются на стороне клиента (форма доступа), я не берусь за причину повторного запроса MySQL при выполнении сортировки. Я ожидаю, что все, что вы сделаете с результатами запроса, произойдет «локально».

Есть идеи, что я делаю и что не так и / или как этого избежать?

спасибо заранее

Ответы [ 2 ]

0 голосов
/ 21 июля 2010

Ваша форма связана со всей таблицей?Если так, то это ошибка дизайна.Это должно быть связано только с ограниченным набором записей.В этом случае на стороне сервера будет выполняться только небольшой запрос.

Во-вторых, вы можете включить Jet SHOWPLAN (Google для него) и посмотреть, что делает движок Jet / ACE db.Относительно оптимизации.

В-третьих, это может быть попадание на сервер, но является ли это значительным ударом?

Наконец, вы можете получить нужные результаты, используя отсоединенные наборы записей, назначенные вашемуформы вместо связанных наборов записей.Это намного сложнее, чем использование стандартных форм, но может быть необходимо.Это делает использование Access намного менее приятным, так как подгонка и отделка не так гладки, как с традиционными формами Access.

0 голосов
/ 06 июля 2010

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

Почему вы не хотите, чтобы это выполнялось в оба конца для сортировки?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...