Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

выборка


Страницы:   1 2 3 4

sqler ©   (2012-12-19 12:16:00) 

для таблицы на 10 млн записей, что будет быстрее: три SELECT-запроса (SELECT..FROM..WHERE) или 1 SELECT запрос (SELECT * FROM table) и перебор полученного рекордсета?


sniknik   (2012-12-19 15:06:00) [61]

О сколько нам открытий чудных. Готовит просвещенья дух.


Кщд   (2012-12-19 14:51:00) [62]

>stas ©   (19.12.12 14:41) [10]
понял, спасибо
вопросов больше не имею)


stas   (2012-12-19 14:41:00) [63]

select film_blob_field from my_blueray_films where id = 726
заполнит столько чему равен размер содержимого film_blob_field для id=726

а если так SELECT * FROM table (как в теме), то затянет все...


Плохиш   (2012-12-19 14:21:00) [64]


> stas ©   (19.12.12 13:09) [6]
> sniknik ©   (19.12.12 13:02) [4]
> 1. Блоб закачивается на клиента полностью

Афигеть. Ты только разработчикам баз данных об этом не говори.


Кщд   (2012-12-19 14:05:00) [65]

не наблюдая запроса,
не видя структуры таблицы,
не зная о наличии/отсутствии индексов и их селективности
рассуждать об эффективности запроса можно так же долго, как и бестолково)

>stas ©   (19.12.12 13:09) [6]
>1. Блоб закачивается на клиента полностью
правильно понимаю, что запрос: select film_blob_field from my_blueray_films where id = 726, - заполонит ОЗУ, например, 20Гб отборного порно в blueray-качестве?)


Медвежонок Пятачок   (2012-12-19 13:12:00) [66]

а в военное время where может и вообще не работать.
так что никаких sql, а только TTable


stas   (2012-12-19 13:09:00) [67]

sniknik ©   (19.12.12 13:02) [4]
1. Блоб закачивается на клиента полностью
2. Затраты времени на обработку условия Where (тем более на 10 млн. записей) могут превышать передачу +данных и перебор на клиенте.


sqler   (2012-12-19 13:09:00) [68]

СУБД DBISAM (встраиваемая)

бд -  локальная копия бд интернет-магазина, блоб полей в таблицах нет


sniknik   (2012-12-19 13:02:00) [69]

> если у вас в table есть блоб поля по 100 мб, то при выборке 10 миллионов записей на клиенте будет забито ОЗУ, следовательно это будет медленее.
чушь. блоб поля обрабатываются иначе. любой размер будет представлен "ссылкой" в пару тройку байт (хз. на конкретное значение).

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

> Возможно сделать это в несколько потоков...
лучше бы многозначительно промолчал... кроме ахинеи разной и не сказал ничего.


Ega23   (2012-12-19 13:01:00) [70]


> если ОЗУ на клиенте сможет принять весь набор, то будет
> быстрее.


Да щаз. Время на передачу данных не тратится, да?


stas   (2012-12-19 12:41:00) [71]

если у вас в table есть блоб поля по 100 мб, то при выборке 10 миллионов записей на клиенте будет забито ОЗУ, следовательно это будет медленее.

если ОЗУ на клиенте сможет принять весь набор, то будет быстрее.

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


Медвежонок Пятачок   (2012-12-19 12:38:00) [72]

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


Страницы:   1 2 3 4

Наверх

Титульная страница Поиск, карта сайта Написать письмо