Vadim
да нет у него массива
Я пишу: $a = []; $a['filter'][] = [2=>'John']; Это массив?
Vadim
[ [id=>9, ....], [id=>2,...] ]
Я понимаю, что так можно, но это нужно переписывать код и мне проще оставить все как есть. Хранить в поле TEXT.
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
Вместо 2 => john id => 2, label => john
Al
это вообще пхп
Al
ты пхпшный массив что ли в json записываешь?
Vadim
Так нельзя?
Al
ну в жс это будет уже объект а не массив
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
Так нельзя?
У js нет ассоциативных массивов 👆я там выше писал
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
Можно, все зависит от того что ты хочешь
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
Но то что ты пытаешься сделать не правильно, измени структуру, отдавай объекты
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
И профит
Vadim
Ок :)
Vadim
Последний вопрос. У меня есть PHP-массив, как его сохранить в базу правильнее всего?
Al
смотря что потом будешь с ним делать
Al
нужен ли поиск по его частям итд
Vadim
смотря что потом будешь с ним делать
Распаковывать и выводить при каждом обращении к странице.
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
Данные структурированы?
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
Через модели ActiveRecord yiiшных)
Al
ну я так понимаю ему этот массив не нужен как сущность
Vadim
ну я так понимаю ему этот массив не нужен как сущность
Нет. Мне просто взять его, распаковать и вывести.
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
Делаешь модель, пьешь связи и готово
Al
а чтобы в одно поле сохранить и если по нему поиска не будет, можно посмотреть serialize
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
А потом так же взять собрать и схоронить
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
Тогда модель
Niko
а чтобы в одно поле сохранить и если по нему поиска не будет, можно посмотреть serialize
если поиска по полю не будет - смысл вообще в типе хранения JSON???
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
Вообще смысл хранения Json?
Niko
Вообще смысл хранения Json?
как по мне - для поиска по полям. Но в этом случае я хз
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
Если только не структурированные данные которые лень в NoSql пихать?
Al
я хз, ему ж надо массив в поле хранить)
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
как по мне - для поиска по полям. Но в этом случае я хз
Можно завести таблицу и хранить там)
Niko
я тоже про noSql подумал. Но там еще задача, чтоб много кода не переписывать
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
Есть так много отличных решений но почему то люди все ещё выбирают Json в mysql))
Vadim
JSON рассматривается как вариант. У меня единственная задача - чтобы это работало как можно быстрее.
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
Ну тогда можно писать все что угодно)
Niko
тогда можно даже хеш хранить, чтоб строки короче стали)))
Vadim
Т.е. можно писать не поддерживаемый говнокод?)
Я про получение и распаковку массива из базы.
Al
serialize() unserialize()
Vadim
https://github.com/phadej/igbinary
Vadim
Вот нашел.
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
serialize() unserialize()
Хэлпер есть
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
Json называется)
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
Там есть энкод и дэкод
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
Стандартный
Al
с этого вопрос и начался) что жсон не то делает ему
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
Это проблема JS, он уже не тот =/
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
А не энкодеров
Vadim
В общем, всем спасибо :)
Vadim
Поставлю ту штуку, лайком много, наверное хорошая )
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
Vadim
JSON : JSON encoded in 2.180496931076 seconds JSON decoded in 9.8368630409241 seconds serialized "String" size : 13993 Native PHP : PHP serialized in 2.9125759601593 seconds PHP unserialized in 6.4348418712616 seconds serialized "String" size : 20769 Igbinary : WIN igbinary serialized in 1.6099879741669 seconds WIN igbinrary unserialized in 4.7737920284271 seconds WIN serialized "String" Size : 4467
Vadim
Это вообще вдохновляет.
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
Чем?
Vadim
Чем?
Скоростью, размером строки
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
При чем тут размер строки?
Niko
можешь тесты на совокупности всех своих строк произвести через $model::find()->batch() и дать нам результат? Мне интересно стало
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
Он сериализует по другому?
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
Сжимает в gz?
Vadim
При чем тут размер строки?
У меня сейчас таблица весит 800Мб, после этой штуки должна весить 280
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
Niko
Скоростью, размером строки
Так он хеширует!!! Как я и предлагал!
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
При чем тут размер бд?
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
И метод хранения?
Vadim
Я решаю другую проблему уже ) Вы сказали, что мне не нужен JSON, я послушал вас и отказался от него.
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
А, ты про в бд не нужен) ок)
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
Посмотри noSql может понравится)
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
Где-то даже было как прикрутить несколько db в yii)
Vadim
Посмотри noSql может понравится)
Это будет работать быстрее?
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
noSql быстро работает, можешь прототип накидать и протестить)
Vadim
noSql быстро работает, можешь прототип накидать и протестить)
Просто сейчас я получаю этот массив и декодирую. А так придется как минимум запрос отправлять в другую базу. Не думаю, что это декодинга.
Vadim
Если не секрет сколько данных? Для чего скорость?
На странице выводится информация, которая ночью обрабатывается для всего сайта пару часов. На лету это просто невозможно делать.