С Новым годом! Форум программистов, компьютерный форум, киберфорум
MySQL
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/13: Рейтинг темы: голосов - 13, средняя оценка - 4.62
9 / 9 / 2
Регистрация: 25.01.2010
Сообщений: 76

Что быстрее?

29.01.2013, 11:26. Показов 2655. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите что лучше использовать?
INNER JOIN или WHERE для связи что будет работать быстрее, или вообще разницы нету?
P.S. Работа с большими таблицами от миллиона записей,в запросе участвует от 5 таблиц, и в каждой около 15 полей.
Условия очень замедляют mysql. Имеет ли смысл делать полную выборку и отсеивать потом через php?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
29.01.2013, 11:26
Ответы с готовыми решениями:

Что лучше, быстрее, правельнее?
SELECT `users`.`name` FROM `users`, `groups` WHERE `groups`.`id` = 'someid' AND `groups`.`id` = `users`.`id` или SELECT...

SQL и PHP код, что быстрее?
На сайте есть база данных MySQL. Сайт написан на PHP. Необходимо выводить данные с базы отфильтрованные. Данные хранятся в 20 таблицах...

Что быстрее читать с файлов или запрос к базе?
Здравствуйте. Меня интересует вопрос. Поясняю. Например у меня есть 20-50 папок и в каждой есть файл config.xml по строк около 50, мне...

7
4217 / 3059 / 583
Регистрация: 21.01.2011
Сообщений: 13,203
29.01.2013, 11:50
Цитата Сообщение от tonx92
INNER JOIN или WHERE для связи что будет работать быстрее, или вообще разницы нету?
По идее должно быть одинаково, но правильнее посмотреть план выполнения в обоих случаях

Цитата Сообщение от tonx92
Имеет ли смысл делать полную выборку и отсеивать потом через php?
Смысл клиент-серверной обработки в том, чтобы не таскать по сети всю выборку с сервера на клиент, а передавать минимум данных, отобранных сервером
0
9 / 9 / 2
Регистрация: 25.01.2010
Сообщений: 76
29.01.2013, 13:32  [ТС]
Цитата Сообщение от Grossmeister Посмотреть сообщение
Сообщение от tonx92
Имеет ли смысл делать полную выборку и отсеивать потом через php?
Смысл клиент-серверной обработки в том, чтобы не таскать по сети всю выборку с сервера на клиент, а передавать минимум данных, отобранных сервером
Причём тут клиент? пхп коды на сервере выполняются, я имею ввиду сделать полную выборку без условий обработать в пхп и вернуть клиенту результат в json
0
 Аватар для crautcher
2450 / 2301 / 597
Регистрация: 27.05.2011
Сообщений: 7,844
29.01.2013, 14:33
Цитата Сообщение от tonx92 Посмотреть сообщение
пхп коды на сервере выполняются, я имею ввиду сделать полную выборку без условий обработать в пхп и вернуть клиенту результат в json
Ну вот у меня 150 тысяч юзеров в базе , мне нужен нужен с id 10523 , и есть 2 варианта :
1. достать юзера с id 10523 по главному ключу что займет доли секунд
2. достать 150 тысяч юзеров (что повесит на практике базу) , затем перебирать 150 тысяч элементов массива (что положит пхп сервер скорее всего) срамнивая айди каждого с 10523
ну сами подумайте ...
0
4217 / 3059 / 583
Регистрация: 21.01.2011
Сообщений: 13,203
29.01.2013, 15:12
Цитата Сообщение от tonx92
Причём тут клиент? пхп коды на сервере выполняются, я имею ввиду сделать полную выборку без условий обработать в пхп и вернуть клиенту результат в json
Зачем подменять работу СУБД своим кодом? Тем более, что для СУБД подобная выборка - это типичная операция, следовательно она максимально оптимизирована по времени
0
9 / 9 / 2
Регистрация: 25.01.2010
Сообщений: 76
29.01.2013, 15:28  [ТС]
Цитата Сообщение от Grossmeister Посмотреть сообщение
Сообщение от tonx92
Причём тут клиент? пхп коды на сервере выполняются, я имею ввиду сделать полную выборку без условий обработать в пхп и вернуть клиенту результат в json
Зачем подменять работу СУБД своим кодом? Тем более, что для СУБД подобная выборка - это типичная операция, следовательно она максимально оптимизирована по времени
Тогда другой вопрос , можно ли как-нибудь оптимизировать LEFT JOIN и совсем не похоже что в данной субд есть хоть какое то подобие его оптимизации, т.к. любой запрос с left join увеличивает время выполнения в 3-4 раза.
0
4217 / 3059 / 583
Регистрация: 21.01.2011
Сообщений: 13,203
29.01.2013, 15:50
Цитата Сообщение от tonx92 Посмотреть сообщение
любой запрос с left join увеличивает время выполнения в 3-4 раза.
Это неудивительно, если ты знаешь, чем outer join отличается от inner join.
Например, связь 2 таблиц по id:
SQL
1
T1.id = T2.t1_id
При inner join мы можем пользовать индекс по id.
При outer join для той таблицы, в которой записей больше (т.е. есть не соответствующие второй), будет использован full scan. Что при большой таблице не шибко быстро...

А по поводу оптимизации запроса - смотреть планы выполнения, посмотреть, какие нужны индексы...
1
9 / 9 / 2
Регистрация: 25.01.2010
Сообщений: 76
30.01.2013, 09:29  [ТС]
Цитата Сообщение от Grossmeister Посмотреть сообщение
При inner join мы можем пользовать индекс по id.
При outer join для той таблицы, в которой записей больше (т.е. есть не соответствующие второй), будет использован full scan. Что при большой таблице не шибко быстро...
А по поводу оптимизации запроса - смотреть планы выполнения, посмотреть, какие нужны индексы...
Ну собственно в этом и проблема, у меня в таблице в которая не соответствует второй 5 млн записей связать таблицы возможно только по 1 полю и оно уже проиндексировано.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
30.01.2013, 09:29
Помогаю со студенческими работами здесь

Что быстрее и как лучше реализовать список категорий
1. Вопрос простой: что будет быстрее запрос типа select * или select id, name, грубо говоря с выбранными столбцами? 2. Есть на сайте...

Php+mysql что будет если запрос SELECT выполнится быстрее чем UPDATE (в разных потоках)
Ребята. Вот объясните мне пожалуйста. Может ли быть такое?: Предположим, что открылось 2 потока одновременно (2 юзера открыли...

Как сделать быстрее
Можно ли оптимизировать код SELECT `Work`.`UserId` AS id, COUNT( `Work`.`statusId` ) AS dost, SUM( `Work`.`Total` ) AS summ, AVG( ...

Что быстрее WHERE x=1 или WHERE x IN (1)?
Есть какие-нибудь сведения насчет данных команд WHERE x=1 или WHERE x IN (1)? Вопрос в том, что есть некая функция, в которой выполняется...

Запуск процесса что лучше? что быстрее? что надежнее? Winexec CreateProcess ShellExecute
Здравствуйте , какую функцию лучше использовать для программного запуска процесса winexec CreateProcess ShellExecute ? В чем...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru