Size: a a a

2020 July 21

ПГ

Павел Г. in MySQL
Ilia Zviagin
В императивных языках -- процедуры, подпрограммы, в SQL -- VIEW.
Понятно, спасибо :)
источник

ПГ

Павел Г. in MySQL
Vova
Прятать поля, например
Ну я например для сайтов, приложений не вижу в этом применения. Если только 1 база и разные приложения. И то смутно.
источник

V

Vova in MySQL
никто ж не обязывает
источник

ПГ

Павел Г. in MySQL
Vova
никто ж не обязывает
Ну я вот поэтому про практическое применение и спрашивал) но спасибо за ответ :)
источник

IZ

Ilia Zviagin in MySQL
Павел Г.
Ну я например для сайтов, приложений не вижу в этом применения. Если только 1 база и разные приложения. И то смутно.
VIEW -- прежде средство повторного использования кода.
Ты любишь свой любимый JOIN из 5ти нужных тебе таблиц?
Сделай из него VIEW , и пиши -

select * from myView where ...
источник

ПГ

Павел Г. in MySQL
Ilia Zviagin
VIEW -- прежде средство повторного использования кода.
Ты любишь свой любимый JOIN из 5ти нужных тебе таблиц?
Сделай из него VIEW , и пиши -

select * from myView where ...
Это я понял :) в самом вопросе это и описал, правда назвал альясом.
источник

V

Vova in MySQL
Ilia Zviagin
VIEW -- прежде средство повторного использования кода.
Ты любишь свой любимый JOIN из 5ти нужных тебе таблиц?
Сделай из него VIEW , и пиши -

select * from myView where ...
а потом на то вью ещё один джоин и для оптимизации это не всегда гут
источник

IZ

Ilia Zviagin in MySQL
Vova
а потом на то вью ещё один джоин и для оптимизации это не всегда гут
Как раз JOIN для оптимизации не помеха
источник

V

Vova in MySQL
а если предикат внутрь не зайдёт? вьюха будет вся пересчитываться а потом уже фильтроваться
источник

V

Vova in MySQL
и читаемость кода ухудшается
источник

IZ

Ilia Zviagin in MySQL
Хотя конечно разнообразие случаев использования view огромно, все не предсказать
источник

A

Armen in MySQL
Ilia Zviagin
Ни первый, ни второй не идеальны, надо убрать подзапрос из JOIN
А будет плюс от этого,, если уберу подзапрос? Если его убрать, то получается что все строки будет использовать для нахождения подходящего, а если там подзапрос с where в нём, то разве уже не меньше информации надо будет обработать? так как where часть ненужного уже отсечёт?
источник

IZ

Ilia Zviagin in MySQL
Armen
А будет плюс от этого,, если уберу подзапрос? Если его убрать, то получается что все строки будет использовать для нахождения подходящего, а если там подзапрос с where в нём, то разве уже не меньше информации надо будет обработать? так как where часть ненужного уже отсечёт?
БУДЕТ!
источник

A

Armen in MySQL
Ilia Zviagin
БУДЕТ!
ВОт два запроса,один без подзапроса второй с  ним и where в нём. Колонка row во втором: 0, это не лучше?
источник

A

Armen in MySQL
Ilia Zviagin
БУДЕТ!
источник

VJ

Vladimir Juriev in MySQL
На всякий - запросы неидентичные. В первом случае скрытый inner join; может вернуть 0 строк. Во втором вернёт строки, даже если customers пустая.
источник

IZ

Ilia Zviagin in MySQL
Armen
ВОт два запроса,один без подзапроса второй с  ним и where в нём. Колонка row во втором: 0, это не лучше?
Шикарно, блять!
Ты написал два разных запроса, и сравниваешь их планы?
источник

DE

Denis Efremov in MySQL
Ilia Zviagin
Шикарно, блять!
Ты написал два разных запроса, и сравниваешь их планы?
Профессор, ну как так можно? Мат и пропаганда наркотиков в одном сообщении!
источник

A

Alex in MySQL
Доброй ночи. подскажите как можно ускорить выборку по дате?
SELECT object_id FROM table WHERE date='2020-07-21' ORDER BY RAND() LIMIT 1;

выполняется 12s в таблице 1.3гб, ~30 миллионов строк

**
добавление индекса на дату только ухудшило ситуацию)
источник

VJ

Vladimir Juriev in MySQL
Убрать order by rand()/добавить партиции по дате.
источник