Как оптимизировать запрос к базе данных MySQL?

1 23
QM
На сайте с 25.01.2010
Offline
170
#21
Mr.Boba:
Извините, это я затупил, так как в коде 4 раза используется функция array_intersect и она забирает все время.
Но в любом случае всем спасибо за помощь.
Может есть альтернатива этой функции?
И даже не так, мне надо только количество одинаковых элементов 2 массивов.

Блин, я диву даюсь такому школьному уровню. Сначала не было банального - индекса. Теперь вопрос ещё веселее и главное - отсутствует полное понимание, что делается.

Вот скажите, ЗАЧЕМ вам НА КЛИЕНТЕ производить работы со множествами, находить пересечение полей поле1, поле2, поле3 и поле4 которые вы выбрали - если это за вас мог сделать ваш SQL-сервер, чьё предназначение которого и есть - язык работы с множествами посредством запросов?

Если вам просто число было нужно (количество одинаковых элементов двух массивов) - ну так забрали бы с SQL-сервера ОДНУ ЦИФРУ - нет, нужно было стянуть ДВЕ ТЫСЯЧИ СТРОК ЗАПИСЕЙ, а потом их дальше ворочать в оперативке, находя пересечение. Бдыдыщ!!

В следующий раз тащите на клиент все 100 000 строк, всю таблицу и проверяйте ваше условие A > 100 and A < 1000 на клиенте, в PHP. А чо, он это умеет, ага - ещё лучше чем находить пересечение массивов.

[Удален]
#22
q_metainfo:
Блин, я диву даюсь такому школьному уровню. Сначала не было банального - индекса. Теперь вопрос ещё веселее и главное - отсутствует полное понимание, что делается.

Вот скажите, ЗАЧЕМ вам НА КЛИЕНТЕ производить работы со множествами, находить пересечение полей поле1, поле2, поле3 и поле4 которые вы выбрали - если это за вас мог сделать ваш SQL-сервер, чьё предназначение которого и есть - язык работы с множествами посредством запросов?

Если вам просто число было нужно (количество одинаковых элементов двух массивов) - ну так забрали бы с SQL-сервера ОДНУ ЦИФРУ - нет, нужно было стянуть ДВЕ ТЫСЯЧИ СТРОК ЗАПИСЕЙ, а потом их дальше ворочать в оперативке, находя пересечение. Бдыдыщ!!
В следующий раз тащите на клиент все 100 000 строк, всю таблицу и проверяйте ваше условие A > 100 and A < 1000 на клиенте, в PHP. А чо, он это умеет, ага - ещё лучше чем находить пересечение массивов.

Это был пример, запрос намного больше. И нужное поле еще обрабатывать надо, прежде чем искать количество одинаковых элементов 2 массивов. Индекс здесь, как показал пример, вообще ни при чем (это была моя ошибка: не обратил внимание на процесс обработки).

1 23

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий