Spec-Zone.ru › MariaDB

Реализованные в MariaDB функции SQL Server, отличающиеся от оригинала

Современные СУБД реализуют несколько расширенных функций. Хотя стандарт SQL и существует, полный список функций отличается для каждой системы баз данных. Иногда разные функции позволяют достичь одной цели, но с различной логикой и различными ограничениями. Это следует учитывать при планировании миграции.

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

На этой странице представлен список функций SQL Server, которые реализуются в MariaDB по-другому, а также функции SQL Server, для которых в MariaDB есть альтернативная функция. Незначительные отличия здесь не учитываются. Список не является исчерпывающим.

SQL

  • Список поддерживаемых типов данных отличается.
  • Существуют соответствующие различия в уровнях изоляции транзакций.
  • SNAPSHOT уровень изоляции не поддерживается. Вместо этого можно использовать START TRANSACTION WITH CONSISTENT SNAPSHOT для получения моментального снимка в начале транзакции. Это совместимо со всеми уровнями изоляции. См. Как реализованы уровни изоляции в MariaDB.
  • Поддержка JSON отличается.

Индексы и производительность

  • Кластеризованные индексы. В MariaDB физический порядок строк делегируется хранилищу. InnoDB использует первичный ключ в качестве кластеризованного индекса.
  • Индексы хеш-таблиц. Только некоторые хранилища поддерживают индексы HASH.
    • Хранилище InnoDB имеет функцию адаптивного индекса хеш-таблиц, включенную по умолчанию. Это означает, что во всех индексах InnoDB создаются как BTREE, и в зависимости от того, как они используются, InnoDB может преобразовывать их из B-деревьев в индексы хеш-таблиц или наоборот. Это происходит в фоновом режиме.
    • Хранилище MEMORY по умолчанию использует индексы хеш-таблиц, если не указан параметр BTREE.
    • См. Типы индексов хранилища для получения дополнительной информации.
  • Хранилище запросов. MariaDB позволяет анализировать производительность запросов с помощью журнала медленных запросов и performance_schema. Некоторые сторонние инструменты с открытым исходным кодом или коммерческие инструменты считывают эту информацию для создания статистики и упрощения идентификации медленных запросов.

Таблицы

  • Вычисляемые столбцы называются сгенерированными столбцами в MariaDB и создаются с другим синтаксисом. См. также Различия в реализации по сравнению с Microsoft SQL Server.
  • Временные таблицы используют другой (более стандартный) синтаксис в MariaDB. В MariaDB история хранится в той же таблице, что и текущие данные (но необязательно в разных разделах). MariaDB поддерживает как SYSTEM_TIME, так и APPLICATION_TIME.
  • Скрытые столбцы — это невидимые столбцы в MariaDB.
  • Временные таблицы реализуются и используются по-другому.

Высокая доступность

  • NOT FOR REPLICATION
    • MariaDB поддерживает фильтры репликации для исключения некоторых таблиц или баз данных из репликации.
    • Возможно сделать таблицу пустой в ведомом сервере (или в ведущем) с помощью хранилища BLACKHOLE.
    • Ведущая база данных может иметь столбцы, которых нет в ведомой (и наоборот тоже поддерживается). Перед использованием этой функции внимательно прочитайте страницу Репликация, когда ведущий и ведомый сервер имеют разные определения таблиц.
    • С MariaDB можно запретить выполнение триггера на ведомом сервере.
    • Возможно запускать события без их репликации. То же самое относится к некоторым административным операторам.
    • Суперпользователи MariaDB могут выполнять операторы без репликации с помощью системной переменной sql_log_bin.
    • Ограничения и триггеры нельзя отключить для репликации, но их можно удалить на ведомых серверах.
    • Синтаксис IF EXISTS позволяет легко создать таблицу на ведущем сервере, которая уже существует (возможно, в другой версии) на ведомом.
  • Параметр pollinginterval. См. Задержки репликации.

Безопасность

  • Список разрешений отличается.
  • Политики безопасности. MariaDB позволяет достичь тех же результатов, назначив разрешения на представления и хранимые процедуры. Однако это не распространенная практика, и это сложнее, чем определение политик безопасности. См. Другие способы использования представлений.
  • MariaDB не поддерживает предложение OUTPUT. Вместо этого можно использовать DELETE RETURNING и, начиная с MariaDB 10.5, INSERT RETURNING и REPLACE RETURNING.

Другие функции

  • Связанные серверы. MariaDB поддерживает хранилища, которые могут читать из и записывать в удаленные таблицы. При использовании хранилища CONNECT эти таблицы могут находиться в разных СУБД, включая SQL Server.
  • Планировщик задач: MariaDB использует планировщик событий для планирования событий.

См. также

  • Функции SQL Server, недоступные в MariaDB
Содержимое, воспроизведенное на этом сайте, является собственностью соответствующих владельцев, и это содержимое не проверяется предварительно компанией MariaDB. Мнения, информация и мнения, выраженные в данном содержимом, не обязательно отражают точку зрения MariaDB или любой другой стороны.

© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/sql-server-features-implemented-differently-in-mariadb/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API