Итак, есть база. Куча мелких таблиц, из которых всё складывается в одну.
Задача - выбрать всё из основной таблицы.
1. Запрос:
SELECT w.`W1`, w.`W2`, w.`W3`, w.`W5`, w.`W6`, w.`W4`,
w.`W7`, w.`W8`, w.`W9`, u.`U1`, r.`R1`, d.`D1`, l.`L1`
FROM `www` w
LEFT JOIN `uuu` u ON u.`id_u` = w.`id_u`
LEFT JOIN `ddd` d ON d.`id_d` = w.`id_d`
LEFT JOIN `lll` l ON l.`id_l` = w.`id_l`
LEFT JOIN `rrr` r ON r.`id_r` = w.`id_r`
2. То же самое, только представлением.
SELECT * FROM `view`
Количество строк: 320
1. Время выполнения: 0.00047
2. Время выполнения: 0.00043
Всё то же самое, только строк в таблице ~11000
1. Время выполнения: 0.207638
2. Время выполнения: 0.218208
Получается, что чем больше таблица, тем медленнее работает представление...
Или может я чего-то не так сделал...или комп у меня глючный))
Ну собсно вопрос - где что лучше заюзать?
Для какой задачи будет оптимальным одно решение, для какой другое?
Топик чисто информативный, для личного развития =)
Спустя 38 минут, 34 секунды (2.10.2012 - 13:32) altairo2087 написал(а):
А сколько раз на быстродейтствие тестировал? Какая погрешность? Вьюшки по сути изначально не ориентированы на быстродействие. Они нужны в основном для для удобного представления данных, либо чтобы можно было безопасно работать с таблицей не имея доступ к начальной информации, либо для прог которые затачивались под одни таблицы, но база изменилась.
Спустя 6 минут, 22 секунды (2.10.2012 - 13:38) rooor написал(а):
Погрешность есть, но не большая.
Цитата |
Вьюшки по сути изначально не ориентированы на быстродействие |
ну всё равно по идее они должны работать быстрее, чем запрос с объединением... хотя не знаю...
Спустя 50 секунд (2.10.2012 - 13:39) inpost написал(а):
SELECT * на 11 тысяч записей? Какой смысл в таких выборках? Надо реальные выборки тестировать, с пагинатором, с условиями, с индексами.
Спустя 1 минута, 28 секунд (2.10.2012 - 13:41) rooor написал(а):
согласен) вечером потестирую)
Спустя 4 часа, 16 минут, 6 секунд (2.10.2012 - 17:57) sergeiss написал(а):
Так я не понял:
1. Где код вьюшки?
2. Сколько раз проверял? Для верности нужно по циклу гонять многократно. И потом только смотреть, какое будет время. Да и то не факт, что результаты сравнения будут достоверными. Особоенно, когда отличие во времени выполнения на в разы, а на проценты.
1. Где код вьюшки?
2. Сколько раз проверял? Для верности нужно по циклу гонять многократно. И потом только смотреть, какое будет время. Да и то не факт, что результаты сравнения будут достоверными. Особоенно, когда отличие во времени выполнения на в разы, а на проценты.