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