То, что надо сделать когда-нибудь
-
Реализовать функцию: 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. Когда это будет реализовано, потребуется еще сделать
обработку возможных тупиковых ситуаций, которые привнесет данное
изменение.
Время отводится согласно объемам работ, а не реальному времени.
Содержание раздела