Sc0undRel
@Sc0undRel

Насколько тяжело работать с большой MySQL базой?

У меня есть такая необходимость завести базу пользователей, а это поля (id, ник, имя, фамилия, email, телефон, город, возраст, фотография + ещё поля 4 -> в сумме около 15)

1) Сколько места будет занимать база с 1 млн подобных записей?
2) Насколько тяжёлые будут запросы к выборке из такой большой базы? Если база увеличится до 10 млн, то и длительность/тяжесть запросов пропорционально в 10 раз увеличится?
3) На какие параметры стоит обратить внимание при выборе хостинга/vps/vds под такую базу?
  • Вопрос задан
  • 346 просмотров
Решения вопроса 1
MetaDone
@MetaDone
Хорошо сформулированный вопрос - 50% решения
1. примерно 700 мегабайт
2. зависит от индексов, организации. Если правильно проставите индексы, то проблем не будет и запросы будут обрабатываться быстро. У меня есть один сайтик с 60млн записей в одной таблице - все норм.
3. Желательно взять с ssd, но такие стоят дороже.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
alexey-m-ukolov
@alexey-m-ukolov Куратор тега MySQL
1) Сколько места будет занимать база с 1 млн подобных записей?
В текущих реалиях - незначительное. Грубая верхняя граница - 10Гб (плюс-минус пара петабайт).

Насколько тяжёлые будут запросы к выборке из такой большой базы?
Зависит от запросов.

Если база увеличится до 10 млн, то и длительность/тяжесть запросов пропорционально в 10 раз увеличится?
Прямой корреляции между размером таблицы и скоростью выполнения запросов нет, движущихся частей в этом процессе довольно много - это и индексы и структура самих запросов.

На какие параметры стоит обратить внимание при выборе хостинга/vps/vds под такую базу?
Для сферической базы в вакууме, с которой будет работать сферическое приложение в вакууме берите тот сферический VDS в вакууме, на который у вас хватает денег. Если он не будет справляться со сферической нагрузкой в вакууме, берите VDS мощнее. Live - Die - Repeat.

P.S.
Насколько тяжело работать с большой MySQL базой?
К вечеру начинает лапы ломить и хвост отваливается, но в целом - терпимо.
Ответ написан
Комментировать
@spotifi
1 миллион записей для современных СУБД и современных серверов - нагрузка ни о чем.
У меня миллиарды записей крутятся - и не тормозит.
Если тормозит, то что то вы не так спроектировали.

Гуглите - правильная индексация базы данных.
А для очень больших нагрузок (не объем, не количество данных, а количество запросов, количество пользователей) - шардинг.

Еще вот тут полезняк:
https://habrahabr.ru/post/113298/
Про Tarantool можете не читать. Вам не надо.
А вот в начале - про правильное использование MySQL.

UPD:
Правильный выбор VPS????
У меня на 200 рублевом VPS с небольшим запасом 5000 запросов в секунду обрабатывается.
Все дело в правильном проектировании/реализации всего хозяйства - БД, индексы, запросы, обработка запросов.

UPD:
1) Сколько места будет занимать база с 1 млн подобных записей?


Берешь размер одной записи (суммируешь среднюю длина фамилии, имени, название города и пр.) умножаешь на миллион и умножаешь на 3.

А зачем ты хочешь в БД хранить фотографию? Это не типовая задача для БД.
Может, ты имел ввиду ссылку?

2) Насколько тяжёлые будут запросы к выборке из такой большой базы? Если база увеличится до 10 млн, то и длительность/тяжесть запросов пропорционально в 10 раз увеличится?


Никому не нужны все твои миллионы. Как правило.

Запросы будут выполняться за разумное время только к небольшой части БД.

Чтобы производительно не падала, чтобы не было Full Scan - нужны индексы. Правильные. Делаешь их на основании того, какие у тебя условия во where.

Выше - это про поиск.

А вот передача данных - это да.
Если тебе надо передать 100 записей или 100 000 записей, то, очевидно, что будет дольше. Но это уже не проблема БД. Тебе нужно постараться максимальное количество информации в одном-единственном запросе получать. А все остальное - уже не задача БД.

3) На какие параметры стоит обратить внимание при выборе хостинга/vps/vds под такую базу?


VDS современный, как правило, легко масштабируется вверх. Берешь самый дешевый. Если не хватает - увеличиваешь тариф. Перезагружаешь. Получаешь больше ресурсов.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы