Niko
та не. пару секунд - что-то там не то в выводе.
The Ant
Тут спрашивали чем select не устраивает
какой селект? имеешь в виду выборочно нужные колонки достать?
Павел
Йеп
Niko
Тут спрашивали чем select не устраивает
он же сказал, ему все поля нужны в полном объеме
The Ant
так если нужны
Павел
Тогда я туплю что за олд атрибуты?
The Ant
дубль атрибутов обычных. просто когда модифицируешь нормальные, олд остаются как были и есть возможность сравнить их
The Ant
http://www.yiiframework.com/doc-2.0/yii-db-baseactiverecord.html#getOldAttribute()-detail
The Ant
они все время тащутся дублем
Павел
Так если ты из базы тока затянул онеж null
Павел
Ты активно меняешь данные?
The Ant
у нас м.б. какой-то разный юй?
The Ant
вот тока достал, ниче не менял. и они сразу заполнены
Павел
Не гоню
Павел
Заполнены
Сергей
Ну сделай свой AR. Отнаследуйся от BaseActiveRecord и переопредели populateRecord, где затри строку $record->_oldAttributes = $record->_attributes;.
Сергей
http://joxi.ru/NDrlgRF4qblDAP
Сергей
что не так-то? :)
The Ant
свой AR я не хочу делать
The Ant
категорически причем
👻
зачем свой
Сергей
Тогда смирись :)
👻
переопредели 1 метод и все
Сергей
Вариантов больше нет
Павел
не надо делать свой AR
Павел
Просто унаследуйся
👻
вариант есть взять пдо и напрямую писать запросы :) это конечно костелище но лишних атрибутов не будет
👻
я в курсе
👻
а так отнаследовать будет самый простой вариант
Niko
в данном случае я не вижу проблемы в структуре моделей, вижу проблему в неправильном подходе Даже если нужен весь текст на одном экране 50 статтей по 10к символов - нужно один раз их вывести и сделать вывод, что пользователь может не долистать до второй статьи Сделать сокращенные body статтей при получении из бд или сделать поле excerpt, которое выводить изначально. Поставить аккордион, по клику на "детальней" грузить полное содержание конкретной статьи по ajax, направляя id Какая-то странная задача. Наверно и коменты на этой же странице нужно вывести под каждой статьей (lol)
Niko
так если нужны
а какая у тебя кодировка в db? Если mb4 - там по 4 символа на каждую букву. Попробуй поставить обычный utf8, чтоб по 3 было. По идее объем на 25% можно сэкономить. Но это не точно
The Ant
The Ant
к тому же это лишняя сериализация. как ни крути очко но ровном месте образуется
Niko
Ага. А если убрать олд атрибут и показать все полностью - ты будешь на коне в этой ситуации
The Ant
думаю 30-40% оперативы сэкономится
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
Очко в подходе если ты рендеришь столько данных за один присест
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
Есть другие варианты
The Ant
какие?
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
Специфично все, подумай что тебе нужно а что можно лениво грузить
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
Как минимум
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
Подумай что тебе нужно в выборке а что нет, так и память сэкономишь
The Ant
уже подумал бро
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
Если тебе нужны тексты 10к+ в выборке 50 значит ты что-то не то или не так хранишь/делаешь
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
Да и 10к+ это мелкотексты)
The Ant
хуй с ними с текстами. это делают несколько человек. основная масса обычные статейники. Но даже так в пиковое время на сервере бывает около 4к народу. при этом одновременно до 250 запросов примерно
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
если прям специфично надо с чем-то тяжелым работать, откажись от AR
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
но уверен в 99.999% случаев это не нужно)
The Ant
сайты разные, от 24 до 100 постов на страницу (сео ебучее)
The Ant
включаешь ар и охуваешь от количества потребляемой памяти. умножаешь на 250 и надо докупать оперативу
👻
если будет норм по производительности может все таки оно того стоит ?
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
сайты разные, от 24 до 100 постов на страницу (сео ебучее)
ну ок, 100 постов, из выборки убери основной текст и грузи только мета данные которые нужны тебе здесь и сейчас
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
+ кеш, если у тебя 1к хитов в сек, кешируй вывод
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
вот тебе уже и не нужна озушка
The Ant
кешируются массивы щас. если я начну кешировать AR объекты это будет фиаско
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
нафига тебе массивы кешировать?
The Ant
до вывода еще дожить нада. контроллер жи перед вью
The Ant
чтобы небыло лишних запросов и построения этих массивов
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
контроллер ок, вернул датасет, там все лениво
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
дошел до вывода если есть в кеше запросов нет, возвращается из кеша
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
если есть, дергает из датасета модели строит и кеширует
The Ant
получается датасет + кеш
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
эктив дата провайдер лениво запросы делает
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
таким образом если у тебя вью в кеше есть то никаких запросов выполняться не будет, память жраться не будет
The Ant
эктив дава провайдера нет ;D во вью уходит готовое
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
вернет только вью из кеша
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
ну вот это косяк
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
во вью надо отдавать лениво
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
тогда можно фрагментарно вывод кешировать
The Ant
возможно, но сейчас так. переделывать это очень накладно. да и грид вивы всякие с лист вивами сраными совсем не подходят для фронта
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
http://www.yiiframework.com/doc-2.0/guide-caching-fragment.html
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
The Ant
я то могу. верстала чот не такой охуенный как я ;D
Vladislav
Всем привет. Кто нибудь с такой проблемой с почтой связывался?