Не разрешать более чем определенному количеству потоков одновременно заниматься восстановлением
MyISAM-таблиц.Изменение
INSERT ... SELECTс целью оптимального использования одновременных вставок.Возвращать истинные типы полей при выполнении
SELECT MIN(столбец) GROUP BY.Множественные результаты.
Сделать возможным задание
long_query_timeс градацией в микросекундах.Cлинковать код
myisampackпрямо в сервер.Перенос кода MySQL на QNX.
Перенос кода MySQL на BeOS.
Перенос MySQL-клиентов на LynxOS.
Добавление временного буферного кэша ключей во время выполнения
INSERT/DELETE/UPDATE, чтобы обеспечить изящное восстановление в случае, если индексный файл окажется полностью заполненным.Если выполняется работа
ALTER TABLEнад таблицей, которая имеет символическую ссылку на другой диск, создавать временные таблицы на этом диске.Реализация типа
DATE/DATETIMEс корректной обработкой информации о временных зонах, чтобы упростить работу с форматом даты для различных временных зон.FreeBSD и MIT-pthreads; отнимают ли спящие потоки время процессора?
Проверить, занимают ли блокированные потоки время процессора.
Исправить
configureтак, чтобы можно было компилировать все библиотеки (подобноMyISAM) без потоков.Добавить опцию периодического сброса на диск страниц ключей для таблиц с запрещенными, в случае, если они некоторое время не использовались.
Возможность связывания по частям ключа (проблема оптимизации).
INSERT SQL_CONCURRENTиmysqld --concurrent-insertдля выполнения одновременной вставки в конец файла, если файл закрыт для чтения.Серверные курсоры.
Проверить, работает ли
lockdс современными ядрами Linux; если нет, то внести исправления вlockd! Чтобы это протестировать, необходимо запуститьmysqldс--enable-lockingи выполнить различные наборы тестов наfork*. Они не должны выявить никаких ошибок, еслиlockdработает.Возможность использования SQL-переменных в
LIMIT, как, например, вLIMIT @a,@b.Возможность обновления переменных в операторах
UPDATE. Например:UPDATE TABLE foo SET @a=a+b,a=@a, b=@a+c.Изменение: если пользовательские переменные обновляются, то сделать так, чтобы их можно было использовать с
GROUP BY, как в следующем примере:SELECT id, @a:=COUNT(*), SUM(sum_col)/@a FROM table_name GROUP BY id.Запретить автоматическое внесение
DEFAULT-значений (значений по умолчанию) в столбцы. Выдавать ошибку в случае использованияINSERT, не содержащего столбца, для которого не определено значение по умолчанию.Исправить
libmysql.cтак, чтобы две командыmysql_query(), идущие подряд, могли работать без чтения результатов или с выдачей хорошего сообщения об ошибке, если это все-таки происходит.Проверка, почему функция
ctime()потоков MIT-pthreads не работает на некоторых FreeBSD системах.Добавление опции
IMAGEопции кLOAD DATA INFILE, чтобы не обновлять поляTIMESTAMPиAUTO_INCREMENT.Добавляемый синтаксис
LOAD DATE INFILE ... UPDATE.Для таблиц с первичными ключами: если данные содержат первичный ключ, строки, соответствующие этому первичному ключу, обновляются остальными столбцами. Столбцы, которых нет во входных данных, остаются без изменений.
Для таблиц с первичными ключами, для которых отсутствует некоторая часть ключа во входном потоке данных или которые не имеют первичного ключа, входные данные интерпретируются сейчас как
LOAD DATA INFILE ... REPLACE INTO.- 
Сделать понятный синтаксис
LOAD DATA INFILE, подобно следующему:LOAD DATA INFILE 'file_name.txt' INTO TABLE tbl_name TEXT_FIELDS (text_field1, text_field2, text_field3) SET table_field1=CONCAT(text_field1, text_field2), table_field3=23 IGNORE text_field3Такой синтаксис может быть использован для пропуска лишних столбцов в текстовом файле или для обновления столбцов на основе выражений, построенных по прочитанным данным.
 - 
LOAD DATA INFILE 'file_name' INTO TABLE 'table_name' ERRORS TO err_table_name. Этот оператор задает запись всех ошибок и предупреждений в таблицуerr_table_name, которая будет иметь структуру, подобную следующей:line_number - номер строки в файле данных error_message - сообщение об ошибке/предупреждение и, возможно data_line - строка из файла данных
 Автоматический вывод из
mysqlв Netscape.LOCK DATABASES(с различными опциями.)Функции:
ADD_TO_SET(value,set)иREMOVE_FROM_SET(value,set).Добавить использование
t1 JOIN t2 ON ... и t1 JOIN t2 USING ...В данное время можно использовать этот синтаксис только сLEFT JOIN.Намного большее количество переменных для
SHOW STATUS. Фиксирование операций чтения и обновления. Выборки по 1 таблице и выборки по связям. Среднее число таблиц в выборке. Большое число запросовORDER BYиGROUP BY.Если вы прерываете выполнение запроса в середине, необходимо открыть другое соединение и убить старый выполнявшийся запрос. В свою очередь, сервер должен распознавать это на своей стороне.
Добавить интерфейс обработчика для табличных данных таким образом, чтобы была возможность использовать его как системную таблицу. Это будет работать несколько медленно в случае запрашивания информации обо всех таблицах, но очень гибко. Должен быть реализован
SHOW INFO FROM tbl_nameдля основных данных о таблицах.Сделать возможным
SELECT a FROM crash_me LEFT JOIN crash_me2 USING (a); в данном случае подразумевается, чтоaбудет браться из таблицыcrash_me.Oracle-подобный
CONNECT BY PRIOR ...для изучения иерархических структур.mysqladmin copy database new-database; требуется добавить командуCOPYвmysqld.Список процессов должен показывать количество запросов/потоков.
SHOW HOSTSдля распечатки информации о кэше имен хостов.Опции
DELETEиREPLACEдля оператораUPDATE(оператор с этими опциями будет удалять строки при получении ошибки дублирующихся ключей во время обновления).Изменить формат
DATETIME, чтобы сохранять порции в секундах.Добавить все недостающие типы ANSI92 и ODBC 3.0.
Изменить имена таблиц с пустых строк на
NULLдля вычисляемых столбцов.Не использовать
Item_copy_stringдля числовых значений во избежание преобразований число->строка->число в случае:SELECT COUNT(*)*(id+0) FROM table_name GROUP BY idСделать возможным использование новой библиотеки
GNU regexpвместо текущей (библиотекаGNUдолжна быть намного быстрее, чем предыдущая).Сделать так, чтобы
ALTER TABLEне срывал работуINSERT DELAYED.Сделать следующее исправление: если на столбцы есть ссылки в выражении
UPDATE, они будут содержать значения, хранившиеся там до запуска процесса обновления.Добавить эмуляцию
pread()/pwrite()под Windows, чтобы сделать возможными одновременные вставки.Разработать анализатор файла журнала для анализа и выдачи информации о том, какие таблицы используются наиболее часто, насколько часто выполняются мультитабличные связи и т.д. Это помогло бы пользователям выбирать такую конструкцию таблиц и областей, которая могла бы быть оптимизирована для выполнения наиболее эффективных запросов.
Добавить
SUM(DISTINCT).Добавить групповые функции
ANY(),EVERY()иSOME(). В ANSI SQL эти функции работают только с булевыми столбцами, но мы можем расширить эти функции, чтобы они работали с любыми столбцами/выражениями, применив:value == 0 -> FALSEиvalue <> 0 -> TRUE.- 
Добиться, чтобы тип для
MAX(column)был таким же как и тип столбцов:mysql> CREATE TABLE t1 (a DATE); mysql> INSERT INTO t1 VALUES (NOW()); mysql> CREATE TABLE t2 SELECT MAX(a) FROM t1; mysql> SHOW COLUMNS FROM t2;
 Придумать хороший синтаксис для оператора, который будет выполнять
UPDATEнад строкой при наличии таковой, иINSERTновой строки, если строка отсутствует (подобно тому, какREPLACEработает сINSERT/DELETE).