![]() |
Модераторы: skyboy |
![]() ![]() ![]() |
|
Wowa |
|
||||
Эксперт ![]() Профиль Группа: Админ Сообщений: 15017 Регистрация: 14.9.2000 Где: Винград Репутация: нет Всего: 290 |
Исходные данные: В базе около 20 000строк
Массив: до 20 000 элементов Какая выбора будет быстрее и стоит может не выбирать все строки сразу, что память не сожрали? Это одиночная:
Или эта, которая выполнятся ровно столько раз, сколько элементов в массив
|
||||
|
|||||
Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 8 Всего: 261 |
Лучше, конечно, 1 запрос.
|
|||
|
||||
Wowa |
|
|||
Эксперт ![]() Профиль Группа: Админ Сообщений: 15017 Регистрация: 14.9.2000 Где: Винград Репутация: нет Всего: 290 |
Но при наличии 20 000 элементов массива у меня даже строка запроса будет очень длинной. |
|||
|
||||
Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 8 Всего: 261 |
ты думаешь будет лучше посылать 20 000 запросов?
Да, возможно в таком случае может быть и можно выиграть с 10 запросами по 2000 в каждом. Но это уже от многих факторов зависит. Когда-то я поднимал тему по этому вопросу... Эх, че-то найти не могу... |
|||
|
||||
Secandr |
|
|||
![]() Связист ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4043 Регистрация: 3.8.2003 Где: Russia, Volgograd Репутация: 6 Всего: 39 |
А что тут спорить. Нужно устроить полевые испытания
![]() |
|||
|
||||
Secandr |
|
||||
![]() Связист ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4043 Регистрация: 3.8.2003 Где: Russia, Volgograd Репутация: 6 Всего: 39 |
А вот такой вопрос: Если у нас есть массив 2,3,4,5,6,7,8,9,55,56,57,58,59,60 то может быть есть смысл сделать немного интелекта программе, пусть она заменить
На
|
||||
|
|||||
Ser9a |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 70 Регистрация: 7.3.2005 Репутация: нет Всего: нет |
врят ли заранее известно какие именно данные в массиве, так что написать
[quote] WHERE (id >2 and id <9 ) or (id>55 and id < 60) врят ли выйдет. 20000 элементов не так уж и много памяти сожрут. |
|||
|
||||
sergejzr |
|
||||
![]() Un salsero ![]() Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 1 Всего: 360 |
ИМХО самое быстрое будет запрос типа:
Этот запрос создать на ПХП например и за раз отправить. Добавлено @ 23:39 Например так:
Добавлено @ 23:45 Если id проиндексирован конечно ![]() Добавлено @ 23:45 Кстати, строку можно разбить на несколько, если у Базы проблемы с её длинной ![]() |
||||
|
|||||
Wowa |
|
|||
Эксперт ![]() Профиль Группа: Админ Сообщений: 15017 Регистрация: 14.9.2000 Где: Винград Репутация: нет Всего: 290 |
т.е. как разбить? несколько запросов отправить? Я имел ввиду длину запроса. |
|||
|
||||
sergejzr |
|
|||
![]() Un salsero ![]() Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 1 Всего: 360 |
Если в массиве 20 000 елементов, разбмваешь его на 200 по 100 и в цикле отправляешь запрос за запросом (получается скомбинированный вариант). Это по скорости будет намного шустрее чем IN и длинна запроса будет ограничена.
А если элементов <100 по моему даже делить не надо ничего ![]() |
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | MySQL | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |