У меня есть база данных, используемая для хранения элементов и свойств этих элементов. Количество свойств является расширяемым, поэтому есть таблица соединений для хранения каждого свойства, связанного с значением элемента.
CREATE TABLE `item_property` (
`property_id` int(11) NOT NULL,
`item_id` int(11) NOT NULL,
`value` double NOT NULL,
PRIMARY KEY (`property_id`,`item_id`),
KEY `item_id` (`item_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
Эта база данных имеет две цели: сохранение (которое имеет первый приоритет и должно быть очень быстрым, я хотел бы выполнить несколько вложений (сотни) за несколько секунд), извлечение данных (выбирает с помощью item_id и property_id) (это второй приоритет, он может быть медленнее, но не слишком много, потому что это испортит мое использование БД).
В настоящее время эта таблица содержит 1,6 миллиарда записей, а простой счет может занять до 2 минут... Вставка не является достаточно быстрой, чтобы ее можно было использовать.
Я использую Zend_Db для доступа к моим данным и действительно буду счастлив, если вы не предложите мне разработать какой-либо элемент на стороне PHP.