Форум SAPE.RU

Форум SAPE.RU (http://forum.sape.ru/index.php)
-   Разработка и сопровождение сайтов (http://forum.sape.ru/forumdisplay.php?f=29)
-   -   Совсем хитрый вопрос про MySQL (http://forum.sape.ru/showthread.php?t=6014)

Kashey 13.11.2007 08:33

Совсем хитрый вопрос про MySQL
 
Прет!
Итак мини чунга чанга.
Есть две ну очень большие таблицы, тип - innoBD склейка производиться через внешние ключики..

Вариант1
SELECT Id,Name FROM tbl_1 WHERE UID IN (Select UID FROM tbl_2 WHERE Selected=1)
работает будем считать 10 секунд.
Subquery выдает 10 строк, весь запрос - теже 10 строк..

Вариант 2
SELECT Id,Name FROM tbl_1,tbl_2 WHERE Selected=1
Работает 8 секунд

И победитель!
array = Select UID FROM tbl_2 WHERE Selected=1
SELECT Id,NAME from tbl_1 WHERE и тут раскручиваем полученый array ..
Работает гдето 0.002 секунды
Даже если в array пара сотен значений работает сильно быстрее..

в tbl_1 милион значений в tbl_2 - 100к

Итак господа присяжные заседатели.. что за фигня такая?

товарисч 13.11.2007 09:10

юзайте кнопочку code чтоли... три минуты втыкал где текст а где запрос
=========
по сабжу -ничё не понял. давай дампы примеров таблиц, и запросы.
разве что поинтересуюсь чистотой экскремента - мусю перезапускали перед каждым опытом? Она очень хорошо кэширует результаты. Как раз на уровне полученных вами разниц в скорости :)

rashman 13.11.2007 10:51

пользуйте JOIN - должно быть быстрее и красивее


Часовой пояс GMT +3, время: 03:33.

Работает на vBulletin® версия 3.8.7.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
SAPE.RU — система купли-продажи ссылок с главных и внутренних страниц сайтов.