Альтернативы разбиению Oracle - PullRequest
1 голос
/ 01 марта 2012

Есть ли хорошие альтернативы разбиению Oracle в базах данных с открытым / открытым исходным кодом? Меня интересует как удаление разделов для запросов, так и оперативная возможность обрезать отдельные разделы без транзакций DELETE.

Я видел, что в PostgreSQL есть некоторая поддержка для секционирования с наследованием таблиц, но это похоже на большие ручные усилия

Есть ли другие варианты? MySQL лучше?

Ответы [ 2 ]

4 голосов
/ 08 ноября 2012

Я знаю, что это старый поток, но я подумал, что упомяну движок хранения MySQL MERGE для людей, ищущих Вы можете использовать его для объединения двух таблиц в одну таблицу, используя UNION, даже для разных баз данных. Для приложений это просто выглядит как обычная таблица.

Есть несколько ограничений:

  • Таблицы должны быть ИДЕНТИЧНЫМИ
  • Работает только с таблицами MyISAM
  • Если вы не укажете INSERT_METHOD, таблица будет доступна только для чтения
  • Будьте осторожны, чтобы иметь ключевые таблицы уникальности, иначе вы получите нечетные результаты

Подробнее здесь: http://dev.mysql.com/doc/refman/5.0/en/merge-storage-engine.html

4 голосов
/ 01 марта 2012

Oracle / DB2 имеют лучшую поддержку для разделения на табличные пространства.Я работал с обоими решениями, и когда вы работаете с огромными объемами реляционных данных, наличие поставщика, поддерживающего вас, великолепно.

MySql поддерживает разбиение http://dev.mysql.com/doc/refman/5.1/en/partitioning.html Я никогда не работалнепосредственно с разделением MySql, но это может быть сделано.Есть несколько типов разделов, Hash, вероятно, ваш лучший вариант.Имейте в виду, что кластер MySQL - это несколько версий, стоящих за основным выпуском MySQL.

Другой вариант, в зависимости от уровня приложения, - это использовать что-то вроде осколков Hibernate.По сути, используя алгоритм, ваше приложение направляет запрос в правильную базу данных на основе предоставленного вами определения.

Наконец, всегда есть маршрут NoSQL, если у вас есть опция.Нечто подобное MongoDB / Cassandra создано для больших наборов данных, но вы теряете транзакции ACID.VoltDB поддерживает SQL, и я думаю, что он также поддерживает транзакции ACID.

В целом, если вы не используете NoSQL, я бы сказал, что ваши возможности ограничены «прозрачным» разделением, таким как Oracle / DB2.

...