Вопрос к знатокам MySQL

12
zhitov
На сайте с 30.01.2005
Offline
219
769

Есть массив со строками.

Есть таблица в БД, в которой присутствуют эти строки.

Что-то на ум ничего лучше не приходит, кроме как перебирать массив циклом и делать запросы к БД.

Но сотня-другая запросов - как-то не кул.

Может кто подскажет более элегантное решение? Совсем голову сломал :confused:

Строительные калькуляторы ( https://www.zhitov.com/ )
LEOnidUKG
На сайте с 25.11.2006
Offline
1723
#1
Но сотня-другая запросов - как-то не кул.

Почему?!

БД придумана для того чтобы её напрягать запросами, если не справляется настраивать и менять железо. Если её не напрягать, зачем она нужна? Можно и в файлике похранить данные.

Если расставленны индексы, то запросы выполнятся в доли секунды.

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/
M2
На сайте с 11.01.2011
Offline
342
#2

zhitov,

Можно сделать так: (если это то, что нужно)


<?php
$array = array('string1', 'string2', 'string3');
$query = 'SELECT field FROM table where param1 IN (' . implode(',', $array) . ')';
mysql_query($query);

/**
* Далее обработка полученного результата
*/
?>
------------------- Крутые VPS и дедики. Качество по разумной цене ( http://cp.inferno.name/view.php?product=1212&gid=1 ) VPS25OFF - скидка 25% на первый платеж по ссылке выше
zhitov
На сайте с 30.01.2005
Offline
219
#3
LEOnidUKG:
Почему?!

Фик знает - я только учусь :) , начитался - создалось такое впечатление.

mark2011, это если в одном field хранятся через запятую? Не вариант, увы.

Там к каждому значению - еще доп. данные. Их и выбираю.

LEOnidUKG:
БД придумана для того чтобы её напрягать запросами

Это будет лучше с точки зрения производительности, потребления памяти, etc чем, допустим:

выбрать из базы значения в многомерный массив (не все, а только те, которые могут иметь отношение к странице) и обработать с помощью обработки уже двух массивов?

LEOnidUKG
На сайте с 25.11.2006
Offline
1723
#4
zhitov:
Это будет лучше с точки зрения производительности, потребления памяти, etc чем, допустим:
выбрать из базы значения в многомерный массив (не все, а только те, которые могут иметь отношение к странице) и обработать с помощью обработки уже двух массивов?

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

zhitov
На сайте с 30.01.2005
Offline
219
#5

LEOnidUKG, спасибо, убедили.

LEOnidUKG:
значит дело ... в создателе таблиц

Верно подмечено :) - пойду совершенствоваться дальше.

orphelin
На сайте с 02.07.2006
Offline
261
#6
mark2011:
Можно сделать так: (если это то, что нужно)

тогда лучше не через запятую, а сериализацией..

zhitov
На сайте с 30.01.2005
Offline
219
#7
orphelin:
а сериализацией..

До этого термина я еще не доучился ;)

В принципе, под мою задачу подходит:

прохожу циклом по исходному массиву -> запросом к БД выбираю нужное значение и дальше эту пару обрабатываю.

Или лучше пойти узнать - что есть сериализация? :)

A
На сайте с 29.12.2007
Offline
68
#8
zhitov:
До этого термина я еще не доучился ;)
В принципе, под мою задачу подходит:

прохожу циклом по исходному массиву -> запросом к БД выбираю нужное значение и дальше эту пару обрабатываю.

Или лучше пойти узнать - что есть сериализация? :)

Лучше получить из массива только нужные данные (регулярки и пр. помогут), а потом запросом получить данные из базы.

LEOnidUKG:
Почему?!

БД придумана для того чтобы её напрягать запросами, если не справляется настраивать и менять железо. Если её не напрягать, зачем она нужна? Можно и в файлике похранить данные.

Если расставленны индексы, то запросы выполнятся в доли секунды.

А ноги - чтобы ходить. Только не говорите, что не ездите на транспорте, не летаете на самолетах и т.д. Так и тут: база создана для хранения и обработки данных, но это совсем не значит, что ее обязательно грузить на 100%

zhitov
На сайте с 30.01.2005
Offline
219
#9
aktuba:
Лучше получить из массива только нужные данные (регулярки и пр. помогут), а потом запросом получить данные из базы.

Это понятно. Тут массив - уже результат с нужными данными :)

aktuba:
Так и тут: база создана для хранения и обработки данных, но это совсем не значит, что ее обязательно грузить на 100%

Я опять в сомнениях :) , хотя и кэш страниц, и индексы в базе - это само собой...

palladin_jedi
На сайте с 13.07.2010
Offline
71
#10
zhitov:
Есть массив со строками.
Есть таблица в БД, в которой присутствуют эти строки.

Что-то на ум ничего лучше не приходит, кроме как перебирать массив циклом и делать запросы к БД.
Но сотня-другая запросов - как-то не кул.

Может кто подскажет более элегантное решение? Совсем голову сломал 😕

mysql_fetch_array?

Сайт о web-разработке и прочем (http://seazo.net)||Продвижение статьями под Google (http://short.seazo.net/ght4zf) Бесплатные консультации рефералам Sape (http://www.sape.ru/r.SWfwWOblBo.php) PHP и JS скрипты на заказ, создание сайтов с нуля и на CMS.
12

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