1.10.3 Что планируется реализовать в версии 5.0 | Оглавление | 1.10.5 То, что надо сделать когда-нибудь |
MyISAM
-таблиц.
INSERT ... SELECT
с целью оптимального использования
одновременных вставок.
SELECT MIN(столбец)
GROUP BY
.
long_query_time
с градацией в микросекундах.
myisampack
прямо в сервер.
INSERT
/DELETE
/UPDATE
, чтобы обеспечить изящное восстановление в
случае, если индексный файл окажется полностью заполненным.
ALTER TABLE
над таблицей, которая имеет
символическую ссылку на другой диск, создавать временные таблицы на
этом диске.
DATE
/DATETIME
с корректной обработкой информации о
временных зонах, чтобы упростить работу с форматом даты для различных
временных зон.
configure
так, чтобы можно было компилировать все библиотеки
(подобно MyISAM
) без потоков.
INSERT SQL_CONCURRENT
и mysqld --concurrent-insert
для выполнения
одновременной вставки в конец файла, если файл закрыт для чтения.
lockd
с современными ядрами Linux; если нет, то
внести исправления в lockd
! Чтобы это протестировать, необходимо
запустить mysqld
с --enable-locking
и выполнить различные наборы
тестов на fork*
. Они не должны выявить никаких ошибок, если lockd
работает.
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
.
CONNECT BY PRIOR ...
для изучения иерархических
структур.
mysqladmin copy database new-database
; требуется добавить команду COPY
в mysqld
.
SHOW HOSTS
для распечатки информации о кэше имен хостов.
DELETE
и REPLACE
для оператора UPDATE
(оператор с этими опциями
будет удалять строки при получении ошибки дублирующихся ключей во
время обновления).
DATETIME
, чтобы сохранять порции в секундах.
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
).
1.10.3 Что планируется реализовать в версии 5.0 | Оглавление | 1.10.5 То, что надо сделать когда-нибудь |