AWS RDS aurora Mysql 5.6 не может создать таблицу с движком, отличным от стандартного

Проблема: не удается создать таблицу с механизмом хранения MyISAM на AURORA MySQL 5.6 RDS

Конфигурация:

У меня есть RDS с Aurora MySQL 5.6.10a.

default_storage_engine имеет значение InnoDB и не может быть изменено (Modifiable = false).

Когда я запускаю команду

SHOW ENGINES

Я получаю:

+----------+---------+-------------------------+--------------+------+------------+
| Engine   | Support | Comment                 | Transactions | XA   | Savepoints |
+----------+---------+-------------------------+--------------+------+------------+
| 'MyISAM' | 'YES'   | 'MyISAM storage engine' | 'NO'         | 'NO' | 'NO'       |
+----------+---------+-------------------------+--------------+------+------------+

Моя цель:

Создание таблицы с поисковой системой MyISAM.

Что происходит:

Когда я пытаюсь создать таблицу с помощью команды:

CREATE TABLE `myTable` (
  `myTableId` int(11) NOT NULL AUTO_INCREMENT,
  `latLong` point NOT NULL,
  `createdAt` datetime DEFAULT NULL,
  `updatedAt` datetime DEFAULT NULL,
  PRIMARY KEY (`myTableId`),
  SPATIAL KEY `point_storePoint_spatial_idx` (`latLong`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

Я получаю:

0 row(s) affected, 1 warning(s): 1266 Using storage engine InnoDB for table 'myTable' Records: 0  Duplicates: 0  Warnings: 1

Что я должен изменить, чтобы разрешить создание нужной таблицы? Заранее спасибо за ответ.


person kmnowak    schedule 05.07.2018    source источник
comment
По сути, MyISAM больше не нужен. Перейти с InnoDB.   -  person Rick James    schedule 05.07.2018
comment
Спасибо, Рик, согласно документации MySQL 5.6: SPATIAL INDEX создает индекс R-дерева. Для механизмов хранения, поддерживающих непространственную индексацию пространственных столбцов, механизм создает индекс B-дерева. Индекс B-дерева для пространственных значений полезен для поиска точных значений, но не для сканирования диапазонов.   -  person kmnowak    schedule 06.07.2018
comment
И еще: Только MyISAM поддерживает индексы R-дерева по пространственным типам. MyISAM поддерживает как ПРОСТРАНСТВЕННЫЕ, так и не-ПРОСТРАНСТВЕННЫЕ индексы. Другие механизмы хранения поддерживают индексы, отличные от SPATIAL.   -  person kmnowak    schedule 06.07.2018
comment
Если цель состоит в том, чтобы найти 10 ближайших кафе Starbucks, взгляните на мою реализацию   -  person Rick James    schedule 06.07.2018


Ответы (2)


Aurora не поддерживает MyISAM. Если вам абсолютно необходимо иметь MyISAM, вы можете попробовать MySQL RDS, но имейте в виду, что это может повлиять на доступные функции, связанные с восстановлением данных, восстановлением на определенный момент времени и т. д.

Вы можете создавать пространственные индексы в Aurora, используя механизм по умолчанию (InnoDB).

Изменить: есть хорошая статья, посвященная геопространственной индексации Aurora, по адресу https://aws.amazon.com/blogs/database/amazon-aurora-under-the-hood-indexing-geospatial-data-using-z-order-curves/, в котором утверждается, что их реализация имеет в 10 раз лучшую производительность, чем MySQL.

person chris    schedule 05.07.2018
comment
Некоторые вопросы: Должен ли я использовать POINT или GEOMETRY? И после этого мне нужно правильно настроить индекс и, возможно, параметр в свойствах по умолчанию? Это предлагается здесь, но без инструкций. Большое спасибо. aws.amazon .com/es/blogs/aws/ - person Ricardo; 15.01.2020
comment
@Ricardo - это, вероятно, должен быть отдельный вопрос, а не обсуждение в комментариях. - person chris; 16.01.2020

В: Что означает "совместимость с MySQL"?

Это означает, что большую часть кода, приложений, драйверов и инструментов, которые вы уже используете сегодня с базами данных MySQL, можно использовать с Aurora практически без изменений. Ядро базы данных Amazon Aurora совместимо с MySQL 5.6 с помощью механизма хранения InnoDB. Некоторые функции MySQL, такие как механизм хранения MyISAM, недоступны в Amazon Aurora.

Для получения дополнительной информации прочитайте FAQ по Aurora: https://aws.amazon.com/rds/aurora/faqs/

person Reza Mousavi    schedule 05.07.2018
comment
Спасибо, я слишком глубоко копал и забыл начать с самого начала, что и есть FAQ. - person kmnowak; 05.07.2018