Задавайте вопросы, мы ответим
Вы не зашли.
Нужно положить в строку массив из 240 32-битных чисел и потом обновлять некоторые из них. Я так понимаю в MySQL нет массивов и не будет. В таком случае беру binary, но он почему-то размером 960 не создается, поэтому вопросы:
1) Я что-то делаю не так или binary просто не создать длиной 960 байт?
2) Допустим я создал бинарный массив на 960 байт через тот же blob. Можно ли и как обновить значения произвольных байт, например под индексами: 0,1,2,3 и 8,9,10,11?
Отредактированно Kim (09.04.2015 19:03:16)
Неактивен
BINARY не может быть более 255 символов по определению. Используйте BLOB.
Используйте INSERT:
https://dev.mysql.com/doc/refman/5.6/en … ion_insert
Неактивен
Массивы есть в MariaDB
https://mariadb.com/kb/en/mariadb/dynamic-columns/
Неактивен
У меня сейчас Percona, т.к. я работаю только с memory таблицами, а в ней они поддерживают blob'ы и varchar'ы динамического размера. MySQL под них всегда выделяет фиксированный максимальный для типа объем памяти, и тип таблицы выставляет только fixed. В MariaDB как у Percona или тоже размер фиксирован?
Можете набросать маленький примерчик MariaDB таблицы с массивом mediumint[240] и как делать update одного из элементов массива?, буду очень признателен
Отредактированно Kim (10.04.2015 09:38:42)
Неактивен
Все, спасибо, разобрался:
Неактивен
rgbeast написал:
BINARY не может быть более 255 символов по определению...
Мне нужно не символов, а байт. Я просто пользовался char'ом и он без проблем вмещал 255 иероглифов в кодировке utf32, что говорит о том, что он может вместить 1020 байт. Вот я и не соображу в чём тут дело, по идее либо я где-то ошибся, либо такого ограничения у binary быть не должно
Неактивен
Оказалось для меня это принципиально. Реализовал на varbinary c занулением по умолчанию через DEFAULT '\0\0\0...\0'. Но кто-то через навикат заходит, меняет что-то в таблице, DEFAULT сбрасывается и всё перестает работать.
Поискал в доках MariaDB об ограничении размера binary поля 255 байтами, но ничего не нашел. Подскажите, там тоже 255?
Неактивен
Вроде бы тоже 255. По крайней мере так было, на новой версии надо тестировать, так как в документации действительно нет.
Неактивен
В MariaDB тоже.
Неактивен