Поиск

Основные возможности MySQL

Ниже представлен список наиболее важных характеристик программного обеспече­ния баз данных MySQL. Дополнительную информацию о текущих и планируемых воз­можностях можно получить в разделе 1.5.

  • Внутренние характеристики и переносимость.
  • • Написан на языках С и C++.

    • Протестирован на широком спектре различных компиляторов.

    • Работает на множестве различных платформ.

    • Для обеспечения переносимости использует инструменты GNU - Automake,
    Autoconf и Libtool.

    • Доступны API-интерфейсы для С, C++, Eiffel, Java, Perl, PHP, Python, Ruby и Tel.

    • Полностью многопоточный с использованием потоков ядра. Может работать в
    многопроцессорных системах.

    • Обеспечивает транзакционный и нетранзакционный механизмы хранения.

    • Использует очень быстрые дисковые таблицы (MylSAM) со сжатием индексов
    на основе бинарных деревьев (В-деревьев).

    • Сравнительно простое добавление другого механизма хранения. Это удобно, если требуется добавить SQL-интерфейс к базе данных собственной разработки.

    • Очень быстрая система распределения памяти, основанная на потоках.

    • Очень быстрые соединения, использующие оптимизированные однопроходные мультисоединения.

    • Хранимые в памяти хеш-таблицы, которые используются в качестве временных таблиц.

    • Функции SQL реализованы с использованием высоко оптимизированной библиотеки классов и должны выполняться предельно быстро. Как правило, какого-либо распределения памяти после инициализации запроса не выполняется.

    • Код MySQL протестирован с помощью инструментов поиска утечки памяти,
    как коммерческих, так и с открытым исходным кодом.

    • Сервер доступен как отдельная программа для использования в клиент-
    серверной сетевой среде. Кроме того, он также поставляется в виде библиотеки, которая может быть встроена в отдельные автономные приложения. Такие
    приложения могут применяться в изолированной среде или среде, не имеющей
    доступа к сети.

  • Типы столбцов
  • • Множество типов данных для столбцов таблиц: знаковые/беззнаковые целые
    ДЛИНОЙ В 1, 2, 3, 4 и 8 байт; ТИПЫ FLOAT, DOUBLE, CHAR, VARCHAR, TEXT, BLOB, DATE,
    TIME, DATETIME, TIMESTAMP, YEAR, SET, ENUM и пространственные типы OpenGIS.

    • Записи фиксированной и переменной длины.

  • Операторы и функции.
  • • Полная поддержка операций и функций в конструкциях SELECT и WHERE запросов, например:

    mysql> SELECT CONCAT(first_name, ' ', last_name) -> FROM citizen -> WHERE income/dependents > 10000 AND age > 30;

    • Полная поддержка конструкций GROUP BY и ORDER BY. Поддержка групповых
    функций (COUNT (), COUNT (DISTINCT . . .), AVG(), STD(), SUM(), MAX(), MIN() И
    GROUP_CONCAT()).

    • Поддержка LEFT OUTER JOIN и RIGHT OUTER JOIN как с синтаксисом SQL, так и
    с синтаксисом ODBC.

    • Поддержка псевдонимов для таблиц и столбцов, как того требует стандарт
    SQL.

    • Операторы DELETE, insert, REPLACE и UPDATE возвращают количество строк,
    которые были изменены. Вместо этого можно задать возврат количества строк,
    соответствующих запросу, для чего потребуется установить соответствующий
    флаг при подключении к серверу.

    • Специфическая для MySQL команда SHOW может быть использована для
    извлечения информации о базах данных, таблицах и индексах. Команда
    EXPLAIN позволяет просмотреть, как оптимизатор выполняет запрос.

    • Имена функций не конфликтуют с именами таблиц и столбцов. Например,
    ABS — абсолютно корректное имя столбца. Единственное ограничение, которое
    накладывается на вызов функций, - это то, что между именем функции и следующей за ним открывающей скобкой ' (' не должно быть пробелов.

    • Можно смешивать таблицы из разных баз данных в одном запросе (как в
    MySQL 3.22).

  • Безопасность.
  • • Система, основанная на паролях и привилегиях, является исключительно гибкой и безопасной и позволяет организовать верификацию средствами хоста.
    Пароли защищены, поскольку весь трафик паролей во время соединения с сервером шифруется.

  • Масштабируемость и ограничения.
  • • Поддерживает работу баз данных огромных объемов. Например, компания
    MySQL AB применяет сервер MySQL для обслуживания базы данных, содержащей 50 миллионов записей. Известна также организация, использующая
    сервер MySQL для обслуживания базы данных из 60 000 таблиц, которая хранит около 5 миллиардов записей.

    • Разрешается иметь до 64 индексов на таблицу (в версиях, предшествующих
    MySQL 4.1.2, допускалось до 32 индексов). Каждый индекс может содержать от
    1 до 16 столбцов или частей столбцов. Максимальная ширина индекса составляет 1000 байт (500 байт в версиях, предшествующих MySQL 4.1.2). Для индекса
    может применяться префикс столбцов с типами CHAR, VARCHAR, BLOB и TEXT.

  • Сетевая связность
  • • Клиенты могут подключаться к серверу MySQL, используя сокеты TCP/IP на
    любой платформе. В Windows-системах семейства NT (NT, 2000 или ХР) клиенты могут подключаться с использованием именованных каналов. В системах на
    базе UNIX клиенты могут подключаться через файлы сокетов UNIX-доменов.

    • Интерфейс Connector/ODBC позволяет MySQL поддерживать клиентские программы, которые используют ODBC-соединения. Например, для подключения
    к серверу MySQL можно использовать MS Access. Клиентское программное
    обеспечение может выполняться под управлением Windows или UNIX. Исходные тексты интерфейса Connector/ODBC доступны. Поддерживаются все
    функции ODBC 2.5, равно как и множество других.

    • Интерфейс Connector/JDBC позволяет MySQL взаимодействовать с клиентскими программами на Java, в которых используются JDBC-подключения.
    Клиентское программное обеспечение может выполняться под управлением
    Windows или UNIX. Исходные тексты интерфейса Connector/JDBC доступны.

  • Локализация
  • • Сервер может выдавать клиентам сообщения об ошибках на разных языках.

    • Полностью поддерживаются несколько кодовых таблиц, включая latinl (ISO-
    8859-1), german, big5, ujis и другие. Например, в именах таблиц и столбцов
    разрешается применять скандинавские символы наподобие 'а', 'а' и 'б'. Начиная с версии MySQL 4.1, также обеспечивается поддержка Unicode.

    • Все данные сохраняются в выбранной кодировке. Все сравнения столбцов с
    нормальными строками чувствительны к регистру.

    • Сортировка выполняется в соответствии с выбранной кодировкой (по умолчанию используется шведский набор). Во время запуска сервера MySQL это
    можно изменить. В качестве примера весьма совершенной сортировки рекомендуется обратить внимание на код сортировки для чешского языка. Сервер
    MySQL поддерживает множество различных кодировок, причем они могут
    быть указаны как во время компиляции, так и во время выполнения.

  • Клиенты и инструменты.

• Сервер MySQL имеет встроенную поддержку SQL-операторов для проверки,
оптимизации и восстановления таблиц. Эти операторы можно выполнять в
режиме командной строки, используя клиентское приложение mysqlcheck.
MySQL включает также myisamchk - очень быструю утилиту командной строки для реализации тех же операций над таблицами MylSAM.

• Все программы MySQL можно запускать на выполнение с опцией —help или
-? для получения быстрой подсказки.