Поиск

Новые средства, запланированные на ближайшее будущее

  • Новая функциональность.
  • • Представления, реализованные в пошаговой манере, вплоть до полной функциональности.

    • Подобные Oracle конструкции CONNECT BY PRIOR оператора SELECT для извлечения древовидных иерархических структур.

    • Добавление всех пропущенных стандартных типов SQL и ODBC 3.0.

    • Добавление SUM(DISTINCT).

    • INSERT SQL_CONCURRENT и mysqld —-concurrent-insert ДЛЯ параллельной вставки в конец таблицы, если таблица заблокирована по чтению.

    Разрешение обновления переменных оператором UPDATE, например, UPDATE foo SET @a:=a+b, a=@a, b=@a+c.

  • Когда пользовательские переменные изменены, разрешение использования их в конструкции GROUP BY, как показано в следующем примере: SELECT id,

    @a:=COUNT(*), SUM(sum__col)/@a FROM имя _ та блицы GROUP BY id.

  • Добавление опции IMAGE к LOAD DATA INFILE, чтобы не обновлять столбцы
  • TIMESTAMP И AUTO_INCREMENT.

  • Добавление синтаксиса LOAD DATA INFILE.. .UPDATE, работающего следующим образом:
  • Для таблиц с первичными ключами, если вводимая запись имеет значение первичного ключа, совпадающее с существующей записью, то последняя обновляется значениями столбцов вводимой записи. Столбцы, пропущенные во вводимой записи, остаются без изменений.

    Для таблиц с первичными ключами, если вводимая запись не содержит первичного ключа, или же какая-то часть ключа пропущена, запись обрабатывается как LOAD DATA INFILE...REPLACE INTO.

  • Изменение оператора LOAD DATA INFILE, чтобы стал возможным такой синтаксис:
  • LOAD DATA INFILE ' имя _ файл a. txt1 INTO TABLE имя _ таблицы

    TEXT_FIELDS { текстовый _ столбец 1, текстовый _ столбец 2, текстовый столбецЗ ) SET столбец _ таблиць /2= ССЖС AT { текстовый _ столбец 1, текстовый _ столбец 2),

    текстовый_ столбецЗ-2Ъ IGNORE текстовый_столбецЗ

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

  • Новые функции для работы со столбцами типа SET:

    • ADD JIO__SET{значение, набор)

    • REMOVE_FROM_SET( значение , набор)

  • В настоящее время, если выполнение mysql прерывается посреди запроса, нужно открыть другое соединение и уничтожить этот выполняющийся запрос. Необходимо сделать так, чтобы такую ситуацию обнаруживал и разрешал сам сервер.
  • Добавление интерфейса механизма хранения для табличной информации таким образом, чтобы его можно было использовать как системную таблицу. Это может несколько снизить скорость, если запрашивается информация обо всех таблицах, однако существенно увеличится гибкость. Необходимо реализовать
  • SHOW INFO FROM имя_ та блицы для базовой информации о таблице.
  • Реализация SELECT a FROM имя__таблицы1 LEFT JOIN имя_таблицы2 USING (a) ;
  • здесь предполагается, что а поступает из таблицы имя_таблицы1.

    •Добавление опций DELETE и REPLACE к оператору UPDATE (чтобы при возникновении ошибки, связанной с дублированием ключа во время обновления, строки удалялись).

    •Изменение формата DATETIME, чтобы можно было хранить доли секунды.

  • Обеспечение возможности использования новой библиотеки GNU regexp вместо применяемой сейчас (новая библиотека значительно быстрее)
  • .
  • Соответствие стандартам, переносимость и миграция.
  • • Не добавлять автоматически значения по умолчанию к столбцам (DEFAULT). Генерировать ошибку для любого оператора INSERT, в котором пропущены значения столбцов, не имеющих значений DEFAULT.

    • Добавить групповые функции ANY(), EVERY () и SOME(). В стандартном языке SQL это работает только на столбцах с булевскими значениями, но мы можем расширить это для работы на всех столбцах или выражениях, трактуя нулевые значения как FALSE и ненулевые как TRUE.

    • Исправить тип возврата функции МАХ (столбец), чтобы она возвращала тот же тип, что и ее аргумент:

    mysqlCREATE TABLE tl (a DATE); mysqlINSERT INTO tl VALUES (NOW()); mysqlCREATE TABLE t2 SELECT MAX(a) FROM tl; mysqlSHOW COLUMNS FROM t2;

  • Увеличение скорости.
  • • He разрешать создание большего, чем определено, количества потоков при запуске восстановления MyISAM в одно и то же время.

    • Изменить оператор INSERT INTO. . .SELECT так, чтобы можно было при желании использовать параллельные вставки.

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

    • Разрешить объединения на частях ключей (для целей оптимизации).

    • Добавить анализатор файлов протоколов, чтобы можно было извлекать информацию о том, какие таблицы используются наиболее часто, насколько часто запрашиваются многотабличные объединения и так далее. Это поможет пользователям идентифицировать то, что подлежит оптимизации для более эффективного выполнения запросов.

  • Удобство использования.
  • • Возвращать оригинальный тип столбца при выполнении SELECT MIN (column) . . . GROUP BY.

    • Обеспечить возможность указывать long_query_time с точностью до миллисекунд.

    • Скомпоновать код myisampack с сервером, чтобы он мог выполнять операции PACK И COMPRESS.

    • Добавить временный буфер кэша ключей при выполнении INSERT, DELETE и UPDATE с тем, чтобы стало возможным восстановление в случае переполнения индексного файла.

    • Если выполняется оператор ALTER TABLE для таблицы, указанной через символическую ссылку и расположенной на другом диске, создавать временные таблицы на том же диске.

    46 Глава 1. Общая информация

    • Реализовать типы date и datetime так, чтобы они корректно обрабатывали информацию о временных зонах, тем самым упростив работу с датами в разных зонах.

    • Исправить configure, чтобы все библиотеки (подобно MylSAM) могли быть скомпилированы без потоков.

    • Разрешить применение пользовательских переменных в качестве аргументов

    LIMIT, например:LIMIT @a, №.

    • Добавить автоматический вывод mysql в Web-браузер.

    • Добавить LOCK DATABASES (с различными опциями).

    • Дополнительная информация для SHOW STATUS. Чтение и обновление записей. Запросы к отдельным таблицам и запросы к объединениям. Среднее количество таблиц в запросе. Количество запросов с конструкциями ORDER BY и GROUP BY.

    • Операция копирования mysqladmin copy база_данных новая_база_данных;. Это потребует добавления операции COPY в mysqld.

    • Вывод списка процессов должен показывать количество запросов/потоков.

    • SHOW HOSTS для вывода информации о кэше имен хостов.

    • Изменить имена таблиц с пустой строки на NULL для вычисляемых столбцов.

    • Не использовать Item_copy_string для числовых значений, чтобы избежать преобразования число-строка-число в случае наподобие:

    SELECT COUNT(*)*(id+0) FROM имя _ таблицы GROUP BY id

    • Изменить оператор ALTER TABLE таким образом, чтобы он не прерывал клиентов, ВЫПОЛНЯЮЩИХ INSERT DELAYED.

    • Внести исправление, чтобы при ссылке на столбцы в конструкции UPDATE они содержали старые значения, которые были до начала обновления.

  • Новые операционные системы

    • Перенести MySQL на платформу LynxOS.