1.2.2 Основные возможности MySQL
В этом разделе описываются некоторые важные характеристики программного обеспечения базы данных MySQL. В большинстве аспектов дорожная карта применима ко всем версиям MySQL. Для получения информации о функциях, которые вводятся в MySQL на основе определённого ряда, см. раздел “Краткое описание” соответствующего руководства:
MySQL 8.4:
MySQL 8.0:
MySQL 5.7:
Внутреннее устройство и переносимость
Написано на C и C++.
Тестировано с широким спектром различных компиляторов.
Работает на многих разных платформах. См. https://www.mysql.com/support/supportedplatforms/database.html.
Для переносимости настраивается с помощью CMake.
Тестировано с Purify (коммерческим детектором утечек памяти), а также с Valgrind, инструментом GPL (https://valgrind.org/).
Использует многослойную структуру сервера с независимыми модулями.
Разработан для полной многопоточности с использованием потоков ядра, для удобного использования нескольких ЦП, если они доступны.
Предоставляет транзакционные и нетранзакционные движки хранения данных.
Использует очень быстрые B-деревянные таблицы на диске (
MyISAM) с сжатием индексов.Разработан таким образом, чтобы было относительно легко добавлять другие движки хранения данных. Это полезно, если вы хотите предоставить интерфейс SQL для собственной базы данных.
Использует очень быструю многопоточную систему выделения памяти.
Выполняет очень быстрые соединения с использованием оптимизированного соединения вложенных циклов.
Реализует кэш-таблицы, которые используются в качестве временных таблиц.
Реализует SQL-функции с помощью высокооптимизированной библиотеки классов, которая должна быть максимально быстрой. Обычно после инициализации запроса не происходит выделения памяти.
Предоставляет сервер как отдельную программу для использования в сетевой среде клиент-сервер.
Типы данных
Операторы и функции
-
Полная поддержка операторов и функций в списке
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является допустимым именем столбца. Единственное ограничение состоит в том, что в вызове функции не допускается наличие пробелов между именем функции и следующим за ним “(”. См. Раздел 11.3, “Ключевые слова и зарезервированные слова”.Вы можете ссылаться на таблицы из разных баз данных в одном операторе.
Безопасность
Система привилегий и паролей, очень гибкая и надёжная, которая позволяет проверку по хосту.
Безопасность паролей путём шифрования всего трафика паролей при подключении к серверу.
Масштабируемость и ограничения
Поддержка больших баз данных. Мы используем MySQL Server с базами данных, содержащими 50 миллионов записей. Мы также знаем о пользователях, которые используют MySQL Server с 200 000 таблицами и примерно 5 000 000 000 записями.
Поддержка до 64 индексов на таблицу. Каждый индекс может состоять из 1 до 16 столбцов или частей столбцов. Максимальная ширина индекса для таблиц
InnoDBсоставляет либо 767 байт, либо 3072 байта. См. Раздел 17.21, “Ограничения InnoDB”. Максимальная ширина индекса для таблицMyISAMсоставляет 1000 байт. См. Раздел 18.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-клиенты на многих языках. См. Главу 31, Подключаемые модули и 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#. См. .
Локализация
Сервер может предоставлять сообщения об ошибках клиентам на многих языках. См. Раздел 12.12, «Установка языка сообщений об ошибках».
Полная поддержка нескольких различных наборов символов, включая
latin1(cp1252),german,big5,ujis, несколько наборов символов Unicode и многое другое. Например, скандинавские символы “å”, “ä” и “ö” разрешены в именах таблиц и столбцов.Все данные сохраняются в выбранном наборе символов.
Сортировка и сравнения выполняются в соответствии с набором символов и сортировкой по умолчанию. Это можно изменить при запуске MySQL-сервера (см. Раздел 12.3.2, «Набор символов и сортировка сервера»). Чтобы увидеть пример очень продвинутой сортировки, посмотрите на чешский код сортировки. MySQL-сервер поддерживает множество различных наборов символов, которые можно указать во время компиляции и выполнения.
Часовой пояс сервера может быть изменён динамически, и отдельные клиенты могут указать свой собственный часовой пояс. См. Раздел 7.1.15, «Поддержка часовых поясов MySQL-сервера».
Клиенты и инструменты
MySQL включает несколько программ-клиентов и утилит. К ним относятся как программы командной строки, такие как mysqldump и mysqladmin, так и графические программы, такие как MySQL Workbench.
MySQL-сервер имеет встроенную поддержку SQL-команд для проверки, оптимизации и восстановления таблиц. Эти команды доступны из командной строки через клиента mysqlcheck. MySQL также включает myisamchk, очень быструю утилиту командной строки для выполнения этих операций над таблицами
MyISAM. См. Главу 6, Программы MySQL.Программы MySQL могут быть вызваны с опцией
--helpили-?для получения онлайн-помощи.
© 2025 Oracle
Licensed under the GPLv2 License.