1.2.2 Основные возможности MySQL
В данном разделе описываются некоторые важные характеристики программного обеспечения MySQL Database. В большинстве случаев, этот документ применим ко всем версиям MySQL. Для получения информации о функциях, вводимых в MySQL на основе определённого ряда, см. раздел “Краткое описание” соответствующего руководства:
MySQL 8.4:
MySQL 8.0:
MySQL 5.7: Раздел 1.3, «Что нового в MySQL 5.7»
Внутренняя реализация и переносимость
Написано на C и C++.
Проверено с широким спектром различных компиляторов.
Работает на многих различных платформах. Смотрите https://www.mysql.com/support/supportedplatforms/database.html.
Для переносимости, настроен с помощью CMake.
Проверен с помощью Purify (коммерческий детектор утечек памяти), а также с помощью Valgrind, инструмента GPL (https://valgrind.org/).
Использует многоуровневую конструкцию сервера с независимыми модулями.
Разработан для полной многопоточности с использованием потоков ядра, для простого использования нескольких процессоров, если они доступны.
Предоставляет транзакционные и нетранзакционные движки хранения.
Использует очень быстрые дисковые таблицы B-дерева (
MyISAM) с сжатием индексов.Разработан так, чтобы сделать добавление других движков хранения относительно простым. Это полезно, если вы хотите предоставить SQL-интерфейс для собственной базы данных.
Использует очень быструю систему выделения памяти на основе потоков.
Выполняет очень быстрые соединения с использованием оптимизированного соединения вложенного цикла.
Реализует кэширующие хеш-таблицы, которые используются в качестве временных таблиц.
Реализует SQL-функции с использованием высокооптимизированной библиотеки классов, которая должна быть максимально быстрой. Обычно выделение памяти вообще отсутствует после инициализации запроса.
Предоставляет сервер как отдельную программу для использования в клиентско-серверной сетевой среде.
Типы данных
Много типов данных: целые числа со знаком/без знака длиной 1, 2, 3, 4 и 8 байт,
FLOAT,DOUBLE,CHAR,VARCHAR,BINARY,VARBINARY,TEXT,BLOB,DATE,TIME,DATETIME,TIMESTAMP,YEAR,SET,ENUM, и пространственные типы OpenGIS. Смотрите Главу 11, Типы данных.Типы строк фиксированной и переменной длины.
Операторы и функции
-
Полная поддержка операторов и функций в списке
SELECTи в ключевой фразеWHEREзапросов. Например:mysql>
SELECT CONCAT(first_name, ' ', last_name)->FROM citizen->WHERE income/dependents > 10000 AND age > 30; Полная поддержка SQL ключевых фраз
GROUP BYиORDER BY. Поддержка групповых функций (COUNT(),AVG(),STD(),SUM(),MAX(),MIN()иGROUP_CONCAT()).Поддержка
LEFT OUTER JOINиRIGHT OUTER JOINс использованием как стандартного SQL, так и синтаксиса ODBC.Поддержка псевдонимов для таблиц и столбцов, как требуется стандартным SQL.
Поддержка
DELETE,INSERT,REPLACEиUPDATEдля возвращения количества изменённых (затронутых) строк или для возвращения количества сопоставленных строк, вместо этого, установив флаг при подключении к серверу.Поддержка специфичных для MySQL
SHOWоператоров, которые извлекают информацию о базах данных, движках хранения, таблицах и индексах. Поддержка базы данныхINFORMATION_SCHEMA, реализованной в соответствии со стандартным SQL.Оператор
EXPLAINдля отображения того, как оптимизатор решает запрос.Независимость имён функций от имён таблиц или столбцов. Например,
ABSявляется допустимым именем столбца. Единственное ограничение заключается в том, что при вызове функции пробелы не допускаются между именем функции и следующим за ним “(”. Смотрите Раздел 9.3, «Ключевые слова и зарезервированные слова».Вы можете ссылаться на таблицы из разных баз данных в одном операторе.
Безопасность
Система привилегий и паролей, которая очень гибкая и безопасная, и которая позволяет проверку по хосту.
Безопасность паролей путём шифрования всего трафика паролей при подключении к серверу.
Масштабируемость и ограничения
Поддержка больших баз данных. Мы используем MySQL Server с базами данных, содержащими 50 миллионов записей. Мы также знаем о пользователях, которые используют MySQL Server с 200 000 таблицами и около 5 000 000 000 строк.
Поддержка до 64 индексов на таблицу. Каждый индекс может состоять из 1 до 16 столбцов или частей столбцов. Максимальная ширина индекса для таблиц
InnoDBсоставляет либо 767 байт, либо 3072 байта. Смотрите Раздел 14.23, «Ограничения InnoDB». Максимальная ширина индекса для таблицMyISAMсоставляет 1000 байт. Смотрите Раздел 15.2, «Движок хранения MyISAM». Индекс может использовать префикс столбца дляCHAR,VARCHAR,BLOBилиTEXTтипов столбцов.
Подключение
-
Клиенты могут подключаться к MySQL Server с помощью нескольких протоколов:
Клиенты могут подключаться с использованием сокетов TCP/IP на любой платформе.
В системах Windows клиенты могут подключаться с помощью именованных каналов, если сервер запущен с включенной системной переменной
named_pipe. Серверы Windows также поддерживают подключения через общую память, если они запущены с включенной системной переменнойshared_memory. Клиенты могут подключаться через общую память, используя параметр--protocol=memory.В системах Unix клиенты могут подключаться с использованием файлов сокетов Unix-домена.
Программы MySQL-клиента могут быть написаны на многих языках. Библиотека клиента, написанная на C, доступна для клиентов, написанных на C или C++, или для любого языка, предоставляющего C-связи.
Доступны API для C, C++, Eiffel, Java, Perl, PHP, Python, Ruby и Tcl, что позволяет писать MySQL-клиенты на многих языках. См. Главу 27, Коннекторы и API.
Интерфейс Connector/ODBC (MyODBC) обеспечивает поддержку MySQL для клиентских программ, использующих подключения ODBC (Open Database Connectivity). Например, вы можете использовать MS Access для подключения к вашему MySQL-серверу. Клиенты могут работать в Windows или Unix. Исходный код Connector/ODBC доступен. Поддерживаются все функции ODBC 2.5, а также многие другие. См. .
Интерфейс Connector/J обеспечивает поддержку MySQL для программ Java-клиента, использующих подключения JDBC. Клиенты могут работать в Windows или Unix. Исходный код Connector/J доступен. См. .
MySQL Connector/NET позволяет разработчикам легко создавать приложения .NET, которые требуют безопасного и высокопроизводительного подключения к данным MySQL. Он реализует необходимые интерфейсы ADO.NET и интегрируется в инструменты, поддерживающие ADO.NET. Разработчики могут создавать приложения, используя выбранные языки .NET. MySQL Connector/NET — это полностью управляемый драйвер ADO.NET, написанный на 100% чистом C#. См. .
Локализация
Сервер может предоставлять сообщения об ошибках клиентам на многих языках. См. Раздел 10.12, “Установка языка сообщений об ошибках”.
Полная поддержка нескольких различных наборов символов, включая
latin1(cp1252),german,big5,ujis, несколько наборов символов Unicode и многое другое. Например, скандинавские символы “å”, “ä” и “ö” допускаются в именах таблиц и столбцов.Все данные сохраняются в выбранном наборе символов.
Сортировка и сравнения выполняются в соответствии с заданным по умолчанию набором символов и сортировкой. Можно изменить это при запуске MySQL-сервера (см. Раздел 10.3.2, “Набор символов и сортировка сервера”). Чтобы увидеть пример очень сложной сортировки, см. чешский код сортировки. MySQL Server поддерживает множество различных наборов символов, которые могут быть указаны во время компиляции и выполнения.
Часовой пояс сервера может быть изменен динамически, и отдельные клиенты могут указать свой собственный часовой пояс. См. Раздел 5.1.13, “Поддержка часовых поясов MySQL Server”.
Клиенты и инструменты
MySQL включает несколько клиентских и служебных программ. К ним относятся как программы командной строки, такие как mysqldump и mysqladmin, так и графические программы, такие как MySQL Workbench.
MySQL Server имеет встроенную поддержку операторов SQL для проверки, оптимизации и ремонта таблиц. Эти операторы доступны из командной строки через клиент mysqlcheck. MySQL также включает myisamchk, очень быструю утилиту командной строки для выполнения этих операций с
MyISAMтаблицами. См. Главу 4, Программы MySQL.Программы MySQL можно вызвать с параметром
--helpили-?, чтобы получить онлайн-помощь.
© 2025 Oracle
Licensed under the GPLv2 License.