Я почти закончил создание веб-сайта, на который нацелено 10000 пользователей.Это бесплатно, поэтому я бы хотел сохранить как можно более низкую стоимость.
Все таблицы, кроме двух, содержат менее 100 000 строк (только для чтения).Если не считать остальных, в одной таблице будет около 5 200 строк на пользователя, и не меньше.В другом я оцениваю около 1,5 млн строк на пользователя в течение двух лет, предполагая, что они продолжают использовать его так долго.
Последняя таблица выглядит следующим образом, а первая такая же, за исключением col3 ...
CREATE TABLE `my_table` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`col1` int(11) NOT NULL,
`col2` mediumint(8) unsigned NOT NULL,
`col3` smallint(5) unsigned NOT NULL,
`col4` int(11) NOT NULL,
PRIMARY KEY (`id`),
KEY `fk1_ix` (`col1`),
KEY `fk2_ix` (`col2`),
KEY `fk3_ix` (`col3`),
CONSTRAINT `fk1` FOREIGN KEY (`col1`) REFERENCES `pktbl1` (`id`) ON UPDATE CASCADE,
CONSTRAINT `fk2` FOREIGN KEY (`col2`) REFERENCES `pktbl2` (`id`) ON UPDATE CASCADE,
CONSTRAINT `fk3` FOREIGN KEY (`col3`) REFERENCES `pktbl3` (`id`) ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
Обе таблицы будут в среднем записываться примерно по 10-20 раз в день, и считываться примерно по 4-5 раз для каждого активного пользователя.
Я бы хотел оценить свою работустоить, задать два основных вопроса и оценить любые другие входные данные.
1) Сможет ли MySQL разумно справиться с моей нагрузкой.
2) Сколько CPU / RAM вы считаете необходимымчтобы справиться с моей нагрузкой с временем отклика / задержкой до одной секунды.
Мой сайт разработан с использованием фреймворка PHP Yii2, поэтому я могу просто переключать базы данных, если это необходимо.Запросы представляют собой простые вставки и индексированные операторы выбора.