Официальный сайт студ.городка НГТУ
Программирование и БД » [mysql]как менять тип таблицы с динамич на статич ? 

#1  01.12.06 00:40

[mysql]как менять тип таблицы с динамич на статич ?

Укроп написал(а):

в доке сказано.

Если у вас нет записей с переменной длиной ( ни одного поля с типом VARCHAR, BLOB или TEXT), то таблица сохраняется в формате " постоянной длиной записи ". Это несколько расходует память, но намного повышает скорость работы.

Таблицы с фиксированной длиной строки.

      Этот формат применяется по умолчанию, если в таблице нет полей с типом VARCHAR,
      BLOB или TEXT.
      Все поля типа CHAR, NUMERIC и DECIMAL дополняются в конце пробелами.
      Высокая скорость работы.
      Легко кэшируются.
      Легко восстановить после краха, так как все строки имеют постоянную длину.
      Не требуют реорганизации ( помощью isamchk), до тех пор, пока не будет удалено очень много записей, и вы захотите освободить место на диске.
      Обычно такие таблицы занимают больше места, чем таблицы с динамической длиной строки.

Таблицы с динамической длиной строки.

      Этот формат применяется, если в таблице есть поля с типом VARCHAR, BLOB или TEXT.
      Все строки динамические (CHAR хранятся как VARCHAR, кроме тех у которых длина меньше 4).
      Каждое поле имеет дополнительный бит, который устанавливается, если строковое поле равно "" ( строка ), или если числовое поле равно 0 ( не то же самое, когда поле может иметь значение NULL).
      Непустые строки хранятся в виде {_} {_}
      Обычно такие таблицы занимают намного меньше места, чем таблицы с фиксированной длиной.
      Ожидаемая длина строки вычисляется по формуле: 3+(количество полей + 7)/8+(количество полей типа CHAR)+(размер числовых типов в бинарном виде )+(длина всех строк )+(количество NULL-полей + 7)/8.

Если оператор ALTER TABLE  используется для изменения определения типа столбца, но DESCRIBE tbl_name показывает, что столбец не изменился, то, возможно, MySQL игнорирует данную модификацию по одной из причин.  Например, при попытке изменить столбец VARCHAR на CHAR MySQL будет продолжать использовать VARCHAR, если данная таблица содержит другие столбцы с переменной длиной.

никак не могу короче сделать из таблицы статическую, потому что по очереди менять тип полей видимо не даст успеха
у меня есть несколько varchar, выходит надо блокировать таблицу, их все менять разом на char, и тут же оптимазить.. будет толк ?

Это не я бляяя...

Исправлено Укроп (01.12.06 00:41)

Offline

#2  10.12.06 02:05

Maq
Профиль

Re: [mysql]как менять тип таблицы с динамич на статич ?

Укроп написал(а):

будет толк ?

а ты попробуй=))

Offline

Программирование и БД » [mysql]как менять тип таблицы с динамич на статич ? 

ФутЕр:)

© Hostel Web Group, 2002-2025.   Сообщить об ошибке

Сгенерировано за 0.047 сек.
Выполнено 11 запросов.