SiZE
SiZE
а то что они наебнут функционал, который не будет протестирован их не волнует
Alexey
SiZE
А тот кто будет ревьюить ослепнет )
Alexey
ну камон
Alexey
если у тя сотни файлов в пхп вьюхах, там явно уже кто-то ослеп
SiZE
Короче все свелось к тому что тебе это не надо, но это не значит что никому не надо
SiZE
а чо у тебя дальше то за условия?
SiZE
запрос один скинул, а по факту в плане другой
Alexey
Alexey
having запросы медленнее
Niko
SiZE
Artem
SiZE
можно через EXISTS попробовать сделать
Evgenii
Кто делал фейсбук бота? Юзаю https://github.com/pimax/fb-messenger-php
Никак не получается получить ответ.
Подписка на вебхук оформлена.
Запросы доходят на сервер, но ответ не приходит.
SiZE
и вообще такие вещи лучше через него по возможности
Artem
Alexey
в любом случае медленнее, они полным датасетом оперируют
Artem
вот у меня на локале на 40кк отрабатывает вообще моментально.
Artem
А под нагрузкой в проде - 10 сек
Artem
Хз, могут ли еще 30 миллионов так деградировать производительность
Alexey
40кк строк во временную таблицу у тя будут ощутимо долго писаться
Alexey
еще и диск лочить 😊
SiZE
Artem
абсолютли
блин, вчера хотел потестить, но у меня дамп не доконца развернулся - место закончилось))
Artem
А если я проверну то же самое, но с подзапросом, который уже отфильтрует по clientId?
SiZE
но ты не учитываешь тот факт что в проде диск может быть занят гораздо больше и соединений с базой так же больше :)
SiZE
скажем если он на 100% молотит своими шпинделями, у тебя запрос может и час отрабатывать
Artem
Artem
Niko
попробуй еластик. Находи в нем id и передавай в mysql, будет быстрей
Niko
какое железо на сервере?
Artem
какое железо на сервере?
16 ядер, много оперативы, точно не помню. Там много всего крутится и один mysql тащит сразу кучу всего. У нас есть elastic для логов, пока не понял как он поможет
Timur
Уважаемые гуру, не могли бы подсказать про оптимизацию запроса и индексы в MySQL? Есть большая табличка с новостями (1 500 000+ записей). Надо мне выбрать записи за определенное время, у которых заполнены все поля (у черновиков что-то может быть пустым). Я делаю:
SELECT news.title FROM news WHERE DATE(application.changes_date) >= DATE(NOW() - INTERVAL 30 DAY) AND title <> '' AND body <> '' AND ... - еще несколько полей, проверяющихся на не пусто.
При таком запросе выборка происходит очень медленно (а если использовать эту выборку в качестве подзапроса с LEFT JOIN, то вообще несколько минут). Как бы мне правильно оптимизировать этот запрос? Я сделал индекс по полю date, но EXPLAIN показывает, что этот индекс используется, если я произвожу выборку ТОЛЬКО по полю date. Если же я добавляю проверку еще на остальные поля, то индекс уже не используется. Можно как-то ускорить выборку, не делая состовного индекса сразу по всем полям, которые используются в запросе?
Niko
Уважаемые гуру, не могли бы подсказать про оптимизацию запроса и индексы в MySQL? Есть большая табличка с новостями (1 500 000+ записей). Надо мне выбрать записи за определенное время, у которых заполнены все поля (у черновиков что-то может быть пустым). Я делаю:
SELECT news.title FROM news WHERE DATE(application.changes_date) >= DATE(NOW() - INTERVAL 30 DAY) AND title <> '' AND body <> '' AND ... - еще несколько полей, проверяющихся на не пусто.
При таком запросе выборка происходит очень медленно (а если использовать эту выборку в качестве подзапроса с LEFT JOIN, то вообще несколько минут). Как бы мне правильно оптимизировать этот запрос? Я сделал индекс по полю date, но EXPLAIN показывает, что этот индекс используется, если я произвожу выборку ТОЛЬКО по полю date. Если же я добавляю проверку еще на остальные поля, то индекс уже не используется. Можно как-то ускорить выборку, не делая состовного индекса сразу по всем полям, которые используются в запросе?
сделай поле "is_draft" и ставь 1 когда все поля заполнены и если какое-то не заполнено ставь обратно 0
И делай выборку where is_draft = 1
Dmitriy
Уважаемые гуру, не могли бы подсказать про оптимизацию запроса и индексы в MySQL? Есть большая табличка с новостями (1 500 000+ записей). Надо мне выбрать записи за определенное время, у которых заполнены все поля (у черновиков что-то может быть пустым). Я делаю:
SELECT news.title FROM news WHERE DATE(application.changes_date) >= DATE(NOW() - INTERVAL 30 DAY) AND title <> '' AND body <> '' AND ... - еще несколько полей, проверяющихся на не пусто.
При таком запросе выборка происходит очень медленно (а если использовать эту выборку в качестве подзапроса с LEFT JOIN, то вообще несколько минут). Как бы мне правильно оптимизировать этот запрос? Я сделал индекс по полю date, но EXPLAIN показывает, что этот индекс используется, если я произвожу выборку ТОЛЬКО по полю date. Если же я добавляю проверку еще на остальные поля, то индекс уже не используется. Можно как-то ускорить выборку, не делая состовного индекса сразу по всем полям, которые используются в запросе?
А boolen переменную черновик/чистовик замутить никак?
Alexey
статус лучше
Timur
А boolen переменную черновик/чистовик замутить никак?
В принципе, возможно. Придется повозиться, конечно, чтобы добавить ее ко всем уже имеющимся записям плюс допилить алгоритм сохранения. Надеялся обойтись только запросом, но, видимо, придется все-же код править.
Niko
Dmitriy
К yii1 можно как-то неймспейсы прикрутить?
SiZE
SiZE
Точней самое простое через композер
SiZE
SiZE
\Yii и тп
Alexey
Alexey
че нет-то )
Alexey
цепляешь композер, композеровский автолоадер и все пашет
Dmitriy
Хмм... Это autoload.php который?
Alexey
Да
Dmitriy
А все, просто заново индекс шторм запустил и все ок
Artem
Вот такое летает)
Niko
Вот такое летает)
я удивлен, что твои 30млн конкатенируются очень быстро
Но решение прикольное)))
The Ant
The Ant
мож старый запрос попробовать фиксануть путем перестановки условий во where и использованием другого индекса?
Niko
я все равно в таких ситуациях лучше вложенный запрос сделаю находя нужный список max(id)
SiZE
Niko
Niko
https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_group_concat_max_len
Niko
429млн created_at сможет склеить, а дальше запрос по бороде пойдет)))
Niko
учитывая запятую в длинну - 390 млн
Niko
Вот такое летает)
попробуй group_concat_max_len поставить например в 100
Так узнаем за какую длинну отвечает эта опция
За длинну при обработке или за длинну строки при финальной выдаче
У тебя получается длинна при обработке запроса может быть очень большой, а в результате 10 символов
Sorry4Wait
Sorry4Wait
при отправке почта выходить такой ошибок
Sorry4Wait
может кто помочь?)
Alexey
kingtour.uz
Alexey
узбеки :D