|
SQL СУБД (реляционная) без излишеств (правда, в последней версии появились
транзакции с помощью Berkley DB и INNOBASE), зато быстрая
(для поиска и добавления, если предстоят частые изменения,
то лучше поискать другую СУБД). Стандарты: entry level SQL92,
ODBC levels 0-2.
Лицензия - GPL/LGPL (но в случае извлечения прибыли от MySQL
фирма - MySQL AB, Швеция - мягко намекает на оплату поддержки).
Для хостинга лицензия не нужна, но клиенты должны иметь возможность
убедиться, что все установлено правильно (предлагается давать
доступ на чтение к установленным исходникам).
Написана на C и C++. Базовая платформа: Solaris 2.7-2.8,
SuSE Linux 7.1 (ядро 2.4, ReiserFS), но работает также в AIX,
BSDI, DEC Unix, FreeBSD, HP-UX, Linux 2.0, Mac OS X, NetBSD,
OpenBSD, OS/2, SGI Irix, SunOS, SCO OpenServer, SCO UnixWare,
Tru64, Win9x, NT, Win2000.
Многопотоковая. Первоначально мимикрировала под mSQL. API
для C, C++, Java, Eiffel, Perl, PHP, Python, Tcl. ODBC. Парольная
защита (пароли шифруются перед пересылке, это, однако, не
увеличивает безопасность).
Таблицы в виде B-tree со сжатием индекса. До 32 индексов
на таблицу. До 16 колонок на индекс. Длина индекса до 500
байт. Таблицы в памяти. Записи переменной длины. Есть примеры
использования MySQL с 60000 таблиц и 5 миллиардами строк.
Отсутствует memory leak (проверено Purify). Поддержка koi8-r
и cp1251 (сортировка, сравнение и т.д.). Клиенты могут соединяться
по TCP/IP (можно использовать только, если никто не подслушивает)
или Unix socket. Можно встраивать в свои программы.
Стабильность подсистем: ISAM - стабильная, MyISAM - gamma,
C API - стабильная (буфер до 16МБ), mysql(admin,show,dump,import)
- стабильные, Basic SQL - стабильная, оптимизатор - стабильная,
блокировка (одновременный доступ нескольких процессов, не
клиентов) - gamma (проблемы в Linux, рекомендуется --skip-locking),
нити в Linux - рекомендуется --skip-locking и использовать
не более 1000 одновременных соединений, DBD - стабильная,
MyODBC - gamma, репликация - бета/gamma, BDB - бета (транзакции),
автоматическое восстановление MyISAM - бета, слияние таблиц
- бета/gamma, INNODB - альфа (транзакции с блокировкой на
уровне строк), полнотекстовый поиск - бета.
|

Расширения к ANSI SQL92:
* типы полей MEDIUMINT, SET, ENUM и различные
модификации BLOB и TEXT
* атрибуты полей: AUTO_INCREMENT, BINARY, NULL, UNSIGNED
и ZEROFILL
* по умолчанию строки сравниваются независимо от регистра
* ключевые слова TEMPORARY и IF NOT EXISTS при создании/удалении
таблиц
* ключ DELAYED при создании/замене строк
* ключ LOW_PRIORITY при манипуляции со строками
* SHOW
* строки можно заключать не только в апострофы, но и в кавычки
* SET OPTION
* синонимы операторов OR (||) и AND (&&) и MOD (%)
* LAST_INSERT_ID()
* REGEXP
* IT_COUNT(), CASE, ELT(), FROM_DAYS(), FORMAT(), IF(),
PASSWORD(), ENCRYPT(), md5(), ENCODE(), DECODE(), PERIOD_ADD(),
PERIOD_DIFF(), TO_DAYS(), or WEEKDAY()
* REPLACE вместо DELETE + INSERT
* присвоение значений переменным в выражениях
* комментарии в стиле C и sh
* множество других мелких улучшений и несовместимостей,
которые не позволят Вам "соскочить" с MySQL на
другую СУБД
Отсутствующие возможности ANSI SQL92:
* sub-select (в руководстве приводятся
примеры как обойтись без него)
* хранимые процедуры и тригеры (тригеры не планируются совсем)
* FOREIGN KEY
* views
|
|