Anonymous
омг
Anonymous
ты реально прочитал тот запрос?
Ivan
да уже нашел,все сделал,но все равно ничего не пашет :С
.htaccess - забыл как это называется)) Юзаешь?
Павел
ты реально прочитал тот запрос?
И order by там же делать надо по дате
Ivan
да я думаю сейчас хоть как то написать что бы понять работает или нет а потом уже пределать не будет проблем
first
https://www.youtube.com/watch?v=i7m_muE7C6I я вот у него смотрел
прям сделал все как у него - ошибка
Павел
ты реально прочитал тот запрос?
В общем сначала отладь запрос из хистори чтобы выбирало нужные статусы. Без всяких джойнов.
Anonymous
что я не знаю, как его сделать так, чтобы выбирало как надо
Anonymous
:)
Павел
Делаешь выборку из таблицы хистори
Павел
Дистинкт по полю product.id
Павел
Order by по дате
Павел
Должно выбрать самые последние статусы по дате для всех продуктов
Павел
Если нужен конкретный статус добавишь where
Anonymous
а как мне сделать дистинкт по полю product_id и при этом выбрать ещё и колонку статусов?
Anonymous
ну то есть, если я сделаю select distinct product_id, status, он же мне всё ЗАДИСТИНКНИРУЕТ
Ivan
что то я уже запутался что нужно вывести)
Ivan
но с подзапрососм "устаревшим методом" это выглядит так: SELECT id, status, status_date FROM products_history WHERE status IN (SELECT status FROM products_history WHERE status= 'Оплачен') ORDER BY status_date DESC
Ivan
Anonymous
мне тут бро помог: SELECT product_id, status, date FROM databasename AS zz WHERE (SELECT COUNT(*) FROM databasename AS zz2 WHERE zz2.product_id = zz.product_id AND zz2.date > zz.date ) = 0
Anonymous
работает!
Ivan
ну я же говорил подзапрос)
Anonymous
теперь вопрос №2 — как это превратить в activequery c:
Vadim
$subQuery = BaseFollower::find()->select('id'); $query = BaseTwitter::find()->where(['not in', 'id', $subQuery]); $models = $query->all();
Vadim
это пример подзапроса
Юрий
wow
Юрий
а прям внутри с анонимкой не? )
Vadim
Ну так же понятнее :)
Юрий
щас найду кой че не под nda
Юрий
SmsQueue::find() ->with([ 'order' => function ($query) { $query->select([ 'id', 'time_offset', 'mobile_phone', ]); }, ]) ->orderBy([ 'priority' => SORT_ASC, 'id' => SORT_ASC, ]) ->all();
Юрий
не претендует на крутость, но не сильно и сложнее
Anonymous
Anonymous
Похоже, у меня проблемы
Ivan
108????
Юрий
Форич в фориче?)
Vadim
А почему вы удивляетесь? У меня по 180 бывает
Юрий
Тому что это ненормально)
Юрий
Или приведи пример того что 180 - обоснованно хоть каким то кейсом
Vadim
Ну просто если сайт сложнее блога, то много всякого происходить может :)
Vadim
Какое количетво запросов считается предельно допустимым?
Vadim
И чем чревато превышение порога?
Ivan
а на скорость загрузки страниц это как то влияет?
Vadim
я бы не сказал
Vadim
конечно . если не кешировать
Ну да. Разумеется. Но ведь кэшировать запросы - это уже по-умолчанию, практически.
Dmitriy
Нет не поумолчанию
Dmitriy
Не всем нужно кешировать
Dmitriy
у меня на работе реалтайм должен быть
Dmitriy
В стартапах скучно стало ? =)
Vadim
Реалтайм - исключение :)
Vadim
В стартапах скучно стало ? =)
Я многогранный человек.
Dmitriy
Тем более по умолчанию не кешируются запросы . и не понятно у человека выше они кешируются или нет
Vadim
Ладно. Давайте так. Я сейчас посмотрел. У меня на странице сайта 160 запросов к базе, в среднем. Код изначательно не я писал и переделывать я ничего не стал. Как сильно изменится нагрузка на сервер, если уменьшить это количество до 20, например? Посещаемость сайта 10-15к в сутки. Мне просто хоть примерно порядок цифр узнать. Меня уверяли, что нагрузка незначительно уменьшится.
Dmitriy
Так сложно сказать . нужно больше данных =)
Vadim
Ладно. Как это замерить адекватно?
Vadim
Я немного говнокодер, извините. PHP учил просто потому что пришлось.
Юрий
А в дебаге йи сколько занимает выполнение запросов от общего времени генерации страницы?
Vadim
А в дебаге йи сколько занимает выполнение запросов от общего времени генерации страницы?
Тут сложно. На локалке у меня развернут докер и все работает медленнее, чем на серваке.
Dmitriy
mysql ?
если да то можно замерить через MySQL Profiler
Vadim
Давайте я включу дебаг на сервере и посмотрю. Секунду.
Anonymous
Anonymous
Зачем нужно 160 запросов
Anonymous
если можно сделать ТАКОЙ ТО ОДИН
Юрий
Мои глаза.
Dmitriy
я бы поспорил у кого быстрее будет 160 или такой один
Vadim
Блин... Только не смеяться
Vadim
Страница грузится 1.2s, база 933ms
Vadim
Но это с включенным дебагом. То есть, без кэша. А так 140-250ms
Vadim
Но да, база отжирает вообще все почти.
Anonymous
Мне бы твои 140ms
Vadim
Мне бы твои 140ms
Ну если закешировать, то и быстрее можно
Vadim
И это у меня еще sphinx ищет
first
Ребзя,нужно сделать пользователей регистрацию/авторизация с ролями (Доступен/Недоступен) Если в переменной указано Доступен,человек может войти в админку. Как это реализовать? имею в виду,куда копать? Раньше хотел сделать просто в БД поле "role" Но потом,как я понял есть у yii 2 именно какой-то функционал для этого. Потом нашел какой то RBAC 2 Потом нашел какой Gii - генератор кода. Про что нужно загуглить,чтобы реализовать мою задачку. Заранее благодарю за ответ.
Vadim
https://github.com/dektrium/yii2-user
first
https://github.com/dektrium/yii2-user
благодарю за ссылку,но хотелось бы и НУЖНО самому это сделать)