Ниже приведено описание важных характеристик программного обеспечения MySQL. See Раздел 1.7, «Кратко о MySQL 4.x».
Внутренние характеристики и переносимость
Написан на C и C++. Протестирован на множестве различных компиляторов.
Работает на различных платформах. See Раздел 2.2.3, «Операционные системы, поддерживаемые MySQL».
Для обеспечения переносимости используется GNU Automake, Autoconf и Libtool.
API для C, C++, Eiffel, Java, Perl, PHP, Python, Ruby и Tcl. See Глава 8, Интерфейсы для MySQL.
Полностью многопоточный с использованием потоков ядра. Это означает, что, если такая возможность обеспечивается, можно легко организовать работу с несколькими процессорами.
Очень быстрые дисковые таблицы на основе В-деревьев со сжатием индексов.
Очень быстрая базирующаяся на потоках система распределения памяти.
Очень быстрые соединения, использующие оптимизированный метод однопроходного мультисоединения (one-sweep multi-join).
Хеш-таблицы в памяти, используемые как временные таблицы.
SQL-функции реализованы при помощи хорошо оптимизированной библиотеки классов, поэтому они выполняются настолько быстро, насколько это возможно. Обычно после инициализации запроса распределения памяти не происходит вообще.
MySQL- код протестирован с использованием Purify (коммерческий детектор утечки памяти), а также Valgrind, одного из GPL-инструментов (http://developer.kde.org/~sewardj/
Типы столбцов
Большое количество:
целочисленные со
знаком/беззнаковые, длиной в
1, 2, 3, 4 и 8 байтов,
FLOAT, DOUBLE,
CHAR, VARCHAR,
TEXT, BLOB,
DATE, TIME,
DATETIME,
TIMESTAMP, YEAR,
SET и ENUM. See
Раздел 6.2, «Типы данных столбцов».
С записями фиксированной и переменной длины.
Все столбцы имеют значения по
умолчанию. С помощью
INSERT можно вставить
подмножество столбцов
таблицы; столбцы, для которых
явно не заданы значения,
устанавливаются в значения
по умолчанию.
Команды и функции
Полная поддержка операторов
и функций в SELECT- и
WHERE- частях
запросов. Например:
mysql>SELECT CONCAT(first_name, " ", last_name)->FROM tbl_name->WHERE income/dependents > 10000 AND age > 30;
Полная поддержка для
операторов SQL GROUP BY
и ORDER BY с
выражениями SQL. Поддержка
групповых функций
(COUNT(), COUNT(DISTINCT
...), AVG(),
STD(), SUM(),
MAX() и MIN()).
Поддержка LEFT OUTER JOIN
и RIGHT OUTER JOIN с
синтаксисом ANSI SQL и ODBC.
Разрешены псевдонимы для таблиц и столбцов в соответствии со стандартом SQL92.
DELETE, INSERT,
REPLACE, and
UPDATE возвращают
число строк, которые были
изменены. Вместо этого можно
задать возвращение совпавших
строк. Для этого следует
установить флаг при
соединении с сервером.
Команду SHOW, которая
является специфической для
MySQL, можно использовать для
получения информации о базах
данных, таблицах и индексах.
Чтобы выяснить, как
оптимизатор выполняет
запрос, можно применять
команду EXPLAIN.
Имена функций не конфликтуют
с именами таблиц и столбцов.
Например, ABS
является корректным именем
столбца. Для вызова функции
существует только одно
ограничение: между именем
функции и следующей за ним
открывающей скобкой
‘(’ не должно
быть пробелов. See
Раздел 6.1.7, «``Придирчив'' ли MySQL к зарезервированным словам?».
В одном и том же запросе могут указываться таблицы из различных баз данных (с версии 3.22).
Безопасность
Система, основанная на привилегиях и паролях, за счет чего обеспечивается гибкость и безопасность, и с возможностью верификации с удаленного компьютера. Пароли защищены, т.к. они при передаче по сети при соединении с сервером шифруются.
Масштабируемость и ограничения
Управляет очень большими
базами данных. Компания MySQL AB.
использует MySQL для
работы с несколькими базами
данных, которые содержат 50
миллионов записей, кроме
того, нам известны
пользователи, использующие
MySQL для работы с 60000 таблицами,
включающими около 5000000000
строк.
Для каждой таблицы
разрешается иметь до 32
индексов. Каждый индекс может
содержать от 1 до 16 столбцов
или частей столбцов.
Максимальная ширина индекса
500 бит (это значение может
быть изменено при компиляции
MySQL). Для индекса может
использоваться префикс поля
CHAR или
VARCHAR.
Установка соединений
Клиенты могут соединяться с
MySQL, используя
сокеты TCP/IP, сокеты Unix или
именованные каналы (named pipes,
под NT).
Поддержка ODBC
(Open-DataBase-Connectivity) для Win32 (с
исходным кодом). Все функции
ODBC 2.5 и многие другие.
Например, для соединения с MySQL
можно использовать MS Access. See
Раздел 8.3, «Поддержка ODBC в MySQL».
Локализация
Сервер может обеспечивать сообщения об ошибках для клиентов на различных языках. See Раздел 4.6.2, «Сообщения об ошибках на языках, отличных от английского».
Полная поддержка нескольких различных кодировок, включая ISO-8859-1 (Latin1), немецкий, big5, ujis и многие другие. Например, скандинавские символы разрешены в именах таблиц и столбцов.
Для хранения всех данных используется выбранный набор символов. Все сравнения для столбцов с нормальными строками проводятся с учетом регистра символов.
Сортировка производится согласно выбранному алфавиту (по умолчанию используется шведский). Эту установку можно изменить при запуске сервера MySQL. Чтобы ознакомиться с примером очень грамотной сортировки, можно обратиться к коду сортировки для чешского языка. MySQL поддерживает много различных кодировок, которые можно задавать во время компиляции и в процессе работы.
Клиенты и инструментарий
Включает myisamchk,
очень быструю утилиту для
проверки, оптимизации и
восстановления таблиц. Все
функциональные возможности
myisamchk также
доступны через SQL-интерфейс.
See Глава 4, Администрирование баз данных.
Все MySQL-программы можно
запускать с опциями
--help или -?
для получения помощи.
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.
© 1995-2005 MySQL AB. All rights reserved.
