@yii2ru

Страница 847 из 1721
Alexey
14.12.2017
09:51:38
Медленнее чем делать такой джойн, как в сабже?
в любом случае медленнее, они полным датасетом оперируют

equicolor
14.12.2017
09:51:46
Медленнее чем делать такой джойн, как в сабже?
вот у меня на локале на 40кк отрабатывает вообще моментально.

А под нагрузкой в проде - 10 сек

Хз, могут ли еще 30 миллионов так деградировать производительность

Google
Alexey
14.12.2017
09:52:20
40кк строк во временную таблицу у тя будут ощутимо долго писаться

еще и диск лочить ?

equicolor
14.12.2017
09:53:49
абсолютли
блин, вчера хотел потестить, но у меня дамп не доконца развернулся - место закончилось))

А если я проверну то же самое, но с подзапросом, который уже отфильтрует по clientId?

SiZE
14.12.2017
09:54:54
но ты не учитываешь тот факт что в проде диск может быть занят гораздо больше и соединений с базой так же больше :)

скажем если он на 100% молотит своими шпинделями, у тебя запрос может и час отрабатывать

equicolor
14.12.2017
09:55:31
но ты не учитываешь тот факт что в проде диск может быть занят гораздо больше и соединений с базой так же больше :)
не, я понимаю) просто нет пре-прод сервера и приходится гадать по кофейной гуще о производительности

Maxim
14.12.2017
09:55:34
Хз, могут ли еще 30 миллионов так деградировать производительность
ты бы разбил на таблицы по appId и выбирал из нужной или сфинкс / еластик поставил бы Сколько у тебя appId?

Maxim
14.12.2017
09:57:30
попробуй еластик. Находи в нем id и передавай в mysql, будет быстрей

какое железо на сервере?

SiZE
14.12.2017
09:58:48
Посмотрю в его сторону, спасибо. Никогда не приходилось юзать
Хотя анти джоин может через NOT EXISTS наоборот быть медленее...

Google
equicolor
14.12.2017
10:06:27
какое железо на сервере?
16 ядер, много оперативы, точно не помню. Там много всего крутится и один mysql тащит сразу кучу всего. У нас есть elastic для логов, пока не понял как он поможет

Timur
14.12.2017
10:06:50
Уважаемые гуру, не могли бы подсказать про оптимизацию запроса и индексы в 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. Если же я добавляю проверку еще на остальные поля, то индекс уже не используется. Можно как-то ускорить выборку, не делая состовного индекса сразу по всем полям, которые используются в запросе?

Maxim
14.12.2017
10:08:53
Уважаемые гуру, не могли бы подсказать про оптимизацию запроса и индексы в 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

Firs
14.12.2017
10:08:54
Уважаемые гуру, не могли бы подсказать про оптимизацию запроса и индексы в 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
14.12.2017
10:09:30
статус лучше

Timur
14.12.2017
10:10:39
А boolen переменную черновик/чистовик замутить никак?
В принципе, возможно. Придется повозиться, конечно, чтобы добавить ее ко всем уже имеющимся записям плюс допилить алгоритм сохранения. Надеялся обойтись только запросом, но, видимо, придется все-же код править.

Timur
14.12.2017
10:13:42
добавь поле в бд и поведение на модель профит!
Ага, точно, не подумал как-то об этом. Спасибо за наводку, пошел ковырять :)

Firs
14.12.2017
10:16:56
К yii1 можно как-то неймспейсы прикрутить?

SiZE
14.12.2017
10:17:44
Точней самое простое через композер

Firs
14.12.2017
10:18:36
Точней самое простое через композер
Phpstorm жёлтым ругается на классы yii...

SiZE
14.12.2017
10:20:48
Phpstorm жёлтым ругается на классы yii...
Они глобальные должны быть

\Yii и тп

Alexey
14.12.2017
10:21:42
че нет-то )

цепляешь композер, композеровский автолоадер и все пашет

Firs
14.12.2017
10:23:15
Хмм... Это autoload.php который?

Alexey
14.12.2017
10:23:49
Да

Firs
14.12.2017
10:23:52
А все, просто заново индекс шторм запустил и все ок

Google
equicolor
14.12.2017
10:34:03
Хотя анти джоин может через NOT EXISTS наоборот быть медленее...
Похоже, я нашел решение https://i.gyazo.com/3648fd274a38790f1804f77a83f1fa10.png

Вот такое летает)

I.C.
14.12.2017
10:40:55
Maxim
14.12.2017
10:41:15
Вот такое летает)
я удивлен, что твои 30млн конкатенируются очень быстро Но решение прикольное)))

Ad.x ??
14.12.2017
10:42:14
мож старый запрос попробовать фиксануть путем перестановки условий во where и использованием другого индекса?

Maxim
14.12.2017
10:43:41
я все равно в таких ситуациях лучше вложенный запрос сделаю находя нужный список max(id)

Ad.x ??
14.12.2017
10:47:17
Похоже, я нашел решение https://i.gyazo.com/3648fd274a38790f1804f77a83f1fa10.png
групп конкат вроде максимум 1024 символа, не? не помню если честно спецификацию, но лимит вроде есть

SiZE
14.12.2017
10:49:07
Maxim
14.12.2017
10:49:14
групп конкат вроде максимум 1024 символа, не? не помню если честно спецификацию, но лимит вроде есть
там длинна опционально настраивается до кол-ва символов в длинну инта

https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_group_concat_max_len

429млн created_at сможет склеить, а дальше запрос по бороде пойдет)))

Maxim
14.12.2017
10:52:47
учитывая запятую в длинну - 390 млн

Вот такое летает)
попробуй group_concat_max_len поставить например в 100 Так узнаем за какую длинну отвечает эта опция За длинну при обработке или за длинну строки при финальной выдаче У тебя получается длинна при обработке запроса может быть очень большой, а в результате 10 символов

1Klass
14.12.2017
11:00:49


при отправке почта выходить такой ошибок

может кто помочь?)

Dmitry
14.12.2017
11:02:00
может кто помочь?)
есть 1 парень. xDebug

Alexey
14.12.2017
11:03:07
kingtour.uz

узбеки :D

Google
Lee
14.12.2017
11:03:51
может кто помочь?)
А ты убедись что ресурс к которому ты подключаешься — апнут

Maxim
14.12.2017
11:04:34
может кто помочь?)
тебе бы еще $this->_stream в том месте на null проверить

Lee
14.12.2017
11:04:38
может кто помочь?)
Почему ты ставишь проверку на === false?

1Klass
14.12.2017
11:06:03
как бы это не мой част кода это SwiftMailer

Dmitry
14.12.2017
11:06:23
Почему ты ставишь проверку на === false?
Илюх, это либа вендоровская

как бы не кастом

Lee
14.12.2017
11:06:48
Dmitry
14.12.2017
11:07:09
как бы это не мой част кода это SwiftMailer
попробуй потестить через https://mailtrap.io/

Maxim
14.12.2017
11:07:54
да пое*ать
Верно! Всегда можно отнаследоваться и сделать нормально

Dmitry
14.12.2017
11:07:59
@Sorry4Wait и покажи, что у тебя в конфиге

Admin
ERROR: S client not available

Lee
14.12.2017
11:08:20
как бы это не мой част кода это SwiftMailer
Переопредели класс StreamBuffer в пакете, сделай пул реквест. Поменяй проверку false === На !$this->_stream

1Klass
14.12.2017
11:08:48
mailer' => [ 'class' => 'yii\swiftmailer\Mailer', 'viewPath' => '@app/mailer', 'useFileTransport' => false, 'transport' => [ 'class' => 'Swift_SmtpTransport', 'host' => 'smtp.gmail.com', 'username' => 'pochta@gmail.com', 'password' => 'password', 'port' => '465', 'encryption' => 'ssl', ], ],

Maxim
14.12.2017
11:10:24
Lee
14.12.2017
11:10:28
mailer' => [ 'class' => 'yii\swiftmailer\Mailer', 'viewPath' => '@app/mailer', 'useFileTransport' => false, 'transport' => [ 'class' => 'Swift_SmtpTransport', 'host' => 'smtp.gmail.com', 'username' => 'pochta@gmail.com', 'password' => 'password', 'port' => '465', 'encryption' => 'ssl', ], ],
А это уже у гугла спрашивай, какого хера он тебе аксес не даёт к почте. Зайди на почту, там письмо должно прийти, что кто-то пытался подключиться. Дай себе грант-акцес и не выё :)

Maxim
14.12.2017
11:10:36
Или какой там второй

Dmitry
14.12.2017
11:11:09
попробуй через тестовый сервис прогнать. тут скорее всего гугл тупит. Илюха прав

Dmitry
14.12.2017
11:11:34
ну да

Google
Dmitry
14.12.2017
11:11:46
пихуй, не важно. суть проблемы - дело в сервисе

Lee
14.12.2017
11:12:58
Кругом одни проблемы. Одни — заблокали доступ. Другие — неправильно обработали ошибку.

Дело закрыто.

Расследование проведено, суд постановил.

kingtour.uz
А ты шо, расист шоль?

Alexey
14.12.2017
11:19:00
нэ

а почту лучше слать через mailgun

Dmitry
14.12.2017
11:31:53
а почту лучше слать через mailgun
как вариант. у меня на проекте не серваке сервер шуршит. пока проблем не было ни разу

Maxim
14.12.2017
11:34:14
мне кажется с него дольше идет

Alexey
14.12.2017
11:35:02
есть стата, есть логи, можно баунсы онлайн всякие смотреть, плюс рекомендации есть по настройке всяких спф

10к бесплатных писем в месяц хватит почти любому проекту

попиарю :D https://packagist.org/packages/yarcode/yii2-mailgun-mailer

Evgeniy
14.12.2017
11:43:02
Всем привет. Ребят, подскажите пожалуйста. Куда можно установить node_modules из npm, чтобы мог спокойно обращаться к нему?

Maxim
14.12.2017
11:50:33
Обычо в корне проекта или глобально лежит

Yet Another Stats
14.12.2017
11:52:20
Карма @maximniko стала 9

Timur
14.12.2017
11:58:31
Так, а как мне правильно спасибо сказать, чтобы у пользователя, которого я поблагодарил, карма поднялась?

Lee
14.12.2017
12:18:12
а почту лучше слать через mailgun
Это ж зарегистрироваться надо, ты шо.

Домен настроить.

Dmitry
14.12.2017
12:29:09
конфиг поменять

Страница 847 из 1721