Что касается MySQL, развернутого при загрузке GCP - PullRequest
0 голосов
/ 22 октября 2018

Я почти закончил создание веб-сайта, на который нацелено 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, поэтому я могу просто переключать базы данных, если это необходимо.Запросы представляют собой простые вставки и индексированные операторы выбора.

Ответы [ 2 ]

0 голосов
/ 24 октября 2018

20 миллиардов строк, в основном в небольших таблицах?Это звучит как 1 терабайт дискового пространства.Запланируйте это.

200K запросов (запись или чтение) в день?Это всего лишь несколько в секунду.Нет проблем на любом сервере.Это предполагает, однако, что запросы не слишком сложны.

Будет ли MySQL справляться с этим?Посмотрите на этом форуме (еще лучше, dba.stackoverflow), вы увидите, что обсуждаются гораздо более крупные системы.

Процессор - обычно наименьшая из проблем.

RAM - Зависит отзапросы.В наши дни я не стал бы начинать с чего-то меньшего, чем 4 ГБ.

Облако - это жизнеспособный вариант.Вы платите дополнительно, но у вас меньше хлопот, особенно если вам нужно обновить.

Получите 100 пользователей в системе, а затем оцените, что у вас есть.Посмотрите, как выглядят числа.

Если у вас возникнут проблемы с производительностью, сначала посмотрите на запросы и индексы, чтобы увидеть, можно ли улучшить самый медленный запрос.

0 голосов
/ 22 октября 2018

На самом деле нет способа оценить, ваши требования очень низкие.Если вам удастся выполнить нагрузочное тестирование, которое вам поможет.

Однако, если вы допустите несколько минут простоя, вы сможете увеличить или уменьшить свой экземпляр Cloud SQL.Это может дать вам уверенность в том, что запуск с f1-micro или g1-small не помешает вам выполнить обновление, если производительность не будет соответствовать вашим потребностям.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...