Spec-Zone .ru
спецификации, руководства, описания, API
|
Этот раздел суммирует то, что было добавлено к и удалено из MySQL 5.7.
Следующие опции были добавлены к MySQL 5.7:
Онлайн ALTER TABLE
. ALTER
TABLE
теперь поддерживает a RENAME INDEX
пункт, который
переименовывает индексирование. Изменение производится на месте без работы табличной копии. Это работает
на все механизмы хранения. См. Раздел 13.1.6,"ALTER TABLE
Синтаксис".
InnoDB
улучшения. Они InnoDB
улучшения были добавлены:
VARCHAR
размер может быть увеличен, используя оперативное ALTER TABLE
, как в этом примере:
ALTER TABLE t1 ALGORITHM=INPLACE, CHANGE COLUMN c1 c1 VARCHAR(255);
Это - истина пока число байтов длины, требуемых a VARCHAR
столбец остается тем же самым. Для VARCHAR
значения от 0 до 255, байт одной длины обязан
кодировать значение. Для VARCHAR
значения 256 байтов или больше, два байта
длины требуются. В результате оперативный ALTER TABLE
только поддерживает увеличение VARCHAR
размер от 0 до 255 байтов или увеличение VARCHAR
размер от значения, равного или больше чем
256 байтов.
Оперативный ALTER
TABLE
не поддерживает увеличение VARCHAR
размер меньше чем от 256 байтов до значения,
равного или больше чем 256 байтов. В этом случае число необходимых байтов длины
изменилось бы от 1 до 2, который только поддерживается табличной копией (ALGORITHM=COPY
). Например, попытка измениться VARCHAR
размер столбца от 255 до 256 оперативных использований ALTER TABLE
возвратил бы ошибку:
ALTER TABLE t1 ALGORITHM=INPLACE, CHANGE COLUMN c1 c1 VARCHAR(256);ERROR 0A000: ALGORITHM=INPLACE is not supported. Reason: Cannot changecolumn type INPLACE. Try ALGORITHM=COPY.
Уменьшение VARCHAR
размер, использующий оперативный ALTER TABLE
не поддерживается. Уменьшение VARCHAR
размер требует табличной копии (ALGORITHM=COPY
).
Производительность DDL для InnoDB
временные таблицы улучшаются посредством оптимизации CREATE TABLE
, DROP TABLE
, TRUNCATE TABLE
, и ALTER TABLE
операторы.
Метаданные временной таблицы InnoDB больше не сохранены к системным
таблицам InnoDB. Вместо этого новая таблица, INNODB_TEMP_TABLE_INFO
, предоставляет пользователям снимок
активных временных таблиц. Таблица содержит метаданные и отчеты относительно всего
пользователя и создаваемые из системы временные таблицы, которые являются активными в
пределах приведенного примера InnoDB. Таблица составляется когда первое SELECT
оператор выполняется против этого.
InnoDB
теперь поддерживает MySQL
поддерживаемые пространственные типы данных. До этого выпуска InnoDB хранил бы
пространственные данные как двоичный файл BLOB
данные. BLOB
остается
базовым типом данных, но пространственные типы данных теперь отображаются на новый InnoDB
внутренний тип данных, DATA_GEOMETRY
.
Есть теперь отдельная табличная область для всех, несжимал временные
таблицы InnoDB. Новая табличная область всегда воссоздается на запуске сервера и
располагается в DATADIR
по умолчанию. Недавно добавленная опция
конфигурационного файла, innodb_temp_data_file_path
, учитывает определяемый
пользователем временный путь файла данных.
В MySQL 5.7.2, innochecksum функциональность был улучшен с несколькими новыми опциями и расширенными возможностями. См. Раздел 4.6.1, "innochecksum — Офлайновая Утилита Контрольной суммы Файла InnoDB".
Новый тип журнала отмены невосстановления и для нормальных и для сжатых
временных таблиц и связанных объектов будет теперь находиться во временной табличной
области. Для получения дополнительной информации см. Раздел
14.2.3.12,"InnoDB
Журналы Отмены Временной таблицы"
.
Обработка условия. MySQL теперь поддерживает сложенные области диагностики.
Когда стек области диагностики продвигается, первая (текущая) область диагностики становится второй
(сложенной) областью диагностики, и новая текущая область диагностики создается как копия этого. В
пределах обработчика особых ситуаций выполняемые операторы изменяют новую текущую область диагностики,
но GET STACKED DIAGNOSTICS
может использоваться, чтобы осмотреть
сложенную область диагностики, чтобы получить информацию об условии, которое заставило обработчик
активироваться, независимый от текущих положений в пределах обработчика непосредственно. (Ранее, была
единственная область диагностики. Чтобы осмотреть активирующие обработчик условия в пределах
обработчика, было необходимо проверить эту область диагностики прежде, чем выполнить любые операторы,
которые могли изменить это.) См. Раздел 13.6.7.3,"GET DIAGNOSTICS
Синтаксис", и Раздел
13.6.7.7, "MySQL Diagnostics Area".
Журналирование. У mysql клиента теперь есть a --syslog
опция, которая заставляет интерактивные операторы быть
отправленными системе syslog
средство. Журналирование подавляется для
операторов, которые соответствуют, значение по умолчанию "игнорируют"
список образца ("*IDENTIFIED*:*PASSWORD*"
), так же как операторы,
которые соответствуют любые образцы, определили использование --histignore
опция. См. Раздел
4.5.1.3, "Журналирование mysql".
Тестовый комплект. Тестовый комплект MySQL теперь использует InnoDB
как механизм хранения значения по умолчанию.
клиент mysql. Ранее, Control+C в mysql, прерванном текущий оператор, если там был один, или выходил из mysql если нет. Теперь Control+C прерывает текущий оператор, если было один, или отменяет какую-либо частичную входную строку иначе, но не выходит.
Перезапись имени базы данных с mysqlbinlog.
Переименование баз данных mysqlbinlog, читая из двоичных журналов, записанных,
используя основанный на строке формат, теперь поддерживается, используя --rewrite-db
опция добавила в MySQL 5.7.1.
Эта опция использует формат --rewrite-db='
. Можно реализовать многократные правила
подстановки, определяя опцию многократно. dboldname
->dbnewname
'
HANDLER
с разделенными таблицами. HANDLER
оператор может теперь использоваться с пользовательскими разделенными таблицами. Такие таблицы могут
использовать любой из доступных типов разделения (см. Раздел 17.2,
"Деля Типы").
Следующие конструкции являются устаревшими и были удалены в MySQL 5.7. Где альтернативы показывают, приложения должны быть обновлены, чтобы использовать их.
innodb_mirrored_log_groups
системная переменная.
Единственное поддерживаемое значение было 1, таким образом, у него не было никакой цели.
INSERT DELAYED
больше не поддерживается. Сервер распознает, но игнорирует
DELAYED
ключевое слово, обрабатывает вставку как незадержанную вставку, и
генерирует ER_WARN_LEGACY_SYNTAX_CONVERTED
предупреждение. ("ВСТАВЛЯЮТ ЗАДЕРЖАННЫЙ, больше не поддерживается. Оператор был преобразован, чтобы ВСТАВИТЬ.")
Точно так же REPLACE DELAYED
обрабатывается как незадержанная замена. DELAYED
ключевое слово будет удалено в будущем выпуске.
Кроме того, несколько DELAYED
Были удалены связанные опции или функции:
--delayed-insert
опция для mysqldump.
COUNT_WRITE_DELAYED
, SUM_TIMER_WRITE_DELAYED
,
MIN_TIMER_WRITE_DELAYED
, AVG_TIMER_WRITE_DELAYED
,
и MAX_TIMER_WRITE_DELAYED
столбцы Схемы Производительности table_lock_waits_summary_by_table
таблица.
mysqlbinlog больше не пишет упоминание
комментариев INSERT DELAYED
.
База данных symlinking на использовании Windows для .sym
файлы были удалены, потому что это избыточно с доступным использованием
поддержки собственной символьной ссылки mklink. Любой
.sym
символьные ссылки файла будут проигнорированы и должны быть заменены
символьными ссылками, создаваемыми, используя mklink. См.
Раздел 8.11.3.1.3, "Используя
Символьные ссылки для Баз данных на Windows".
Неиспользованное --basedir
и --datadir
опции для mysql_upgrade были удалены.
Ранее, опции программы могли быть определены полностью или как любой однозначный
префикс. Например, --compress
опция могла быть дана mysqldump как --compr
,
но не как --comp
потому что последний неоднозначен. Префиксы опции больше не
поддерживаются; только полные опции принимаются. Это - то, потому что префиксы могут вызвать проблемы,
когда новые опции реализуются для программ и префикса, который в настоящий момент однозначен, мог бы
стать неоднозначным в будущем.