Справочное руководство по MySQL

         

То, что надо сделать когда-нибудь

  • Реализовать функцию: get_changed_tables(timeout,table1,table2,...).
  • Изменить чтение таблиц так, чтобы везде, где возможно. использовалась memmap. Сейчас memmap используется только для уплотненных таблиц.
  • Сделать лучше автоматический код временных меток (timestamp). Добавлять временные метки в журнал обновлений при помощи SET TIMESTAMP=#;.
  • Использовать в некоторых местах семафор чтения/записи для увеличения скорости.
  • Обеспечить полную поддержку внешних ключей в MyISAM-таблицах (возможно, после реализации хранимых процедур с триггерами).


  • Подготовить простые обзоры (сначала по одной таблице, позднее по любому выражению).
  • Реализовать автоматическое закрытие некоторых таблиц, если таблица, временная таблица или временные файлы получат ошибку 23 (недостаточно открытых файлов).
  • Если обнаружится поле=#, заменить все местонахождения поля на #. Сейчас такое делается только для некоторых простых случаев.
  • Заменить все константные выражения вычисляемыми, если возможно.
  • Реализовать оптимизацию ключ=выражение. К данному моменту делается оптимизация только для ключ=поле или ключ=константа.
  • Связывать некоторые функции копирования для улучшения кода.
  • Заменить sql_yacc.yy внутритекстовым синтаксическим анализатором, чтобы уменьшить ее размер и получать лучшие сообщения об ошибке (5 дней).
  • Изменить собственный синтаксический анализатор так, чтобы он использовал только одно правило для различного количества аргументов в функции.
  • Использовать полные вычисляемые имена в части сортировки (для ACCESS97).
  • MINUS, INTERSECT и FULL OUTER JOIN (в настоящее время поддерживаются UNION [в 4.0] и LEFT OUTER JOIN).
  • SQL_OPTION MAX_SELECT_TIME=#, чтобы устанавливать ограничения по времени для запроса.
  • Сделать так, чтобы обновляемый журнал записывался в базу данных..
  • Сделать добавления в LIMIT, чтобы можно было делать восстановление данных с конца результирующего набора.
  • Сигналы предупреждений для функций соединения/чтения/записи клиента.
  • Необходимо обратить внимание на изменения на safe_mysqld; согласно FSSTND (которому пытается следовать Debian) PID-файлы должны помещаться в `/var/run/<progname>.pid', a файлы журналов - в `/var/log'. Было бы хорошо, если бы было можно поместить "`DATADIR'" в первое объявление "`pidfile'" и "`log'", чтобы местоположение этих файлов можно было изменить одним оператором.
  • Разрешать клиенту запрашивать ведение журналов.
  • Добавить использование zlib() для gzip-файлов в LOAD DATA INFILE.
  • Исправить сортировку и группирование BLOB-столбцов (сейчас проблема частично решена).
  • Хранимые процедуры. Рассматриваются также триггеры.
  • Простой (атомарный) язык обновления, который может быть использован для написания циклов и т.п. в MySQL-сервере.
  • Произвести изменения для того, чтобы пользоваться семафорами при подсчете потоков. Но сначала нужно реализовать библиотеку семафоров для потоков MIT-pthreads.
  • Не устанавливать новое значение во время установки колонки в 0. вместо этого использовать NULL.
  • Добавить полную поддержку круглых скобок для JOIN.
  • В качестве альтернативы одному потоку/соединению управлять пулом потоков при обработке запросов.
  • Обеспечить возможность получать более чем одну блокировку при помощи GET_LOCK. Когда это будет реализовано, потребуется еще сделать обработку возможных тупиковых ситуаций, которые привнесет данное изменение.

Время отводится согласно объемам работ, а не реальному времени.

Содержание раздела