Эффективность хранения и запросов в базе данных MySQL и mariadb? - PullRequest
0 голосов
/ 30 декабря 2018

Я новичок в запросах в очень больших базах данных.Я хотел бы знать, если разделение очень большой таблицы данных на несколько улучшает или уменьшает эффективность хранения и скорость запросов.Например, если у меня есть очень большая таблица данных с годовой информацией с 300 миллионами строк и почти 30 столбцами, лучше ли разбить ее на 12 месяцев или оставить как есть?это улучшит эффективность или хранение, или ничего?

1 Ответ

0 голосов
/ 30 декабря 2018

Краткий ответ: Нет. Дисковое пространство будет немного больше ;производительность вряд ли улучшится.

Длинный ответ:

Каждый раздел - это отдельная таблица;каждая таблица имеет заранее выделенное пространство.Каждый раздел имеет 4-7 МБ «свободного» пространства.

Разделение по своей сути не приводит к увеличению производительности.(В некоторых случаях это приводит к небольшому замедлению.)

Тем не менее, есть 4 вариантов использования , о которых я знаю, где разделение, если оно сделано тщательно, можетобеспечить заметное ускорение.Вы ничего не сказали, чтобы указать, что ваш - один из тех случаев.Наиболее распространенным является «временной ряд», в котором необходимо удалить «старые» данные.Преимущество заключается в том, что DROP PARTITION является практически мгновенным, а не DELETE.

Пожалуйста, опишите вашу ситуацию с данными - тип данных, схему и важные запросы.Если это приложение хранилища данных, то могут быть полезны «временные ряды».Скорее всего Сводные таблицы ;их часто можно использовать для значительного ускорения «Отчетов», в отличие от длинных GROUP BYs.

...