Как оптимизировать базу данных?

Всем привет! Занялся оптимизацией базы данных MySQL, в связи с чем два вопроса:
1. Если в таблице содержится 30 тысяч записей и в этой же таблице в каждой записи присутствует пустое поле varchar, влияет ли это на размер базы, скорость выборки или на доп нагрузку на сервер?
2. Если поля varchar заполнены только на 50% и если поля заполнены на 100%, есть ли между ними разница в плане размера базы данных?
  • Вопрос задан
  • 307 просмотров
Решения вопроса 1
Melkij
@Melkij
PostgreSQL DBA
1. Поле типа varchar всегда занимает минимум 1 или 2 байта на диске, в зависимости от максимальной длины этого поля. В индексах и при операциях в памяти разворачивается до своего максимального размера (подобно char). Больше данных -> меньше данных влезает в кеш -> больше нагрузка на диски -> медленнее работа.
На таком смешном размере таблицы не имеет никакой роли. Если это уже потребовалось оптимизировать - огромные грабли в другом месте.
2. Да, на диске varchar хранит только то, что положили в поле. Плюс 1 или 2 байта оверхеда на хранению длины записанной строки.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
1. не заметил
2. на размер влияет заполненность записей, но место высвобождается не сразу.

А вообще выключайте кеширование запросов и тестируйте скорость отдачи, можете еще скриптиком заполнить 200 тыс записей, чтобы сильнее ощутить какую то разницу.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы