13.11.2007, 08:33 | #1 |
Специалист
Регистрация: 02.07.2007
Сообщений: 453
Вес репутации: 222
|
Совсем хитрый вопрос про 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к Итак господа присяжные заседатели.. что за фигня такая?
__________________
И как всегда это все ScanLog записывает |
13.11.2007, 09:10 | #2 |
Специалист
|
юзайте кнопочку code чтоли... три минуты втыкал где текст а где запрос
========= по сабжу -ничё не понял. давай дампы примеров таблиц, и запросы. разве что поинтересуюсь чистотой экскремента - мусю перезапускали перед каждым опытом? Она очень хорошо кэширует результаты. Как раз на уровне полученных вами разниц в скорости |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Хитрый вебмастер? | yuri | Вопросы по работе системы | 7 | 19.03.2009 00:34 |
Трамадол совсем обезумел | админ | Курилка | 11 | 17.05.2008 20:57 |
выручайте, я совсем запутался | ncx | Вопросы по работе системы | 3 | 10.04.2008 19:04 |
Что-то совсем нестыкуется | 3TOH | Курилка | 14 | 25.03.2008 22:40 |
Не показываются ссылки, совсем. | Ilusha | Ошибки при работе с системой | 24 | 28.07.2007 13:19 |
Часовой пояс GMT +3, время: 15:40.