2014-11-12 5 views
0

У меня есть таблица -Какая структура хранения лучше?

CREATE TABLE `DBMSProject`.`ShoppingCart` (
    `Customer_ID` INT NOT NULL, 
    `Seller_ID` INT NOT NULL, 
    `Product_ID` INT NOT NULL, 
    `Quantity` INT NOT NULL, 
    PRIMARY KEY (`Customer_ID`,`Seller_ID`,`Product_ID`)); 

Эта таблица операций намного больше операций вставки и удаления, чем операций обновления .. Какая структура хранения наиболее подходит в снижении общей работы и время доступа? Я не уверен между структурой Hash и структурой дерева B + и ISAM. PS - количество или записи составляет порядка 10 миллионов

+0

Тот факт, что вы описали SQL DDL, указывает на то, что вы уже решили, что структура хранилища database (mysql) – gerrytan

+0

Физическое хранилище - какой способ лучше?. Я знаю, что MySQL использует BTREE по умолчанию. Но если бы я мог измениться, то было бы лучше - мой вопрос –

+0

MyISAM поддерживает только индексы BTREE и FULLTEXT. Он не поддерживает индексы HASH. –

ответ

0

Для корзины данных целостность данных важнее, чем необработанная скорость.

MyISAM не поддерживает транзакции ACID и не устанавливает ограничения внешних ключей. Со всеми этими идентификационными номерами, которые вы показываете, я не буду приступать к движку, который не применяет ограничения внешнего ключа.

В целом, я предпочитаю тестирование сверх спекуляций. Вы можете создавать таблицы, загружать их с помощью 10 миллионов строк случайных (ish) данных, индексировать их несколькими различными способами и запускать тесты времени с репрезентативными операторами SQL всего за пару часов. Используйте аналогичное оборудование, если это возможно.

И когда дело доходит до индексов, вы можете их удалить и добавить, не переписывая код приложения. Если вы не можете побеспокоить тест, просто выберите его. Позже, если у вас есть проблема с производительностью, предлагаемая explain, может быть связана с индексом, отбросить ее и создать другую. (После того, как вы это сделаете пару раз, вы, вероятно, обнаружите, что у вас есть может не тратьте время на тестирование.)

Смежные вопросы