Сжатие строк в разных базах данных - PullRequest
1 голос
/ 09 декабря 2011

Может ли mysql-server-express сжимать строки?если бы вы могли дать мне ссылку на некоторую документацию, в которой говорится, что это будет очень цениться, поскольку я не могу найти эту информацию.

Я знаю, что mysql позволяет это с помощью функции compress () настрока.Также интересно, может ли это быть сделано автоматически или вам нужно использовать эту функцию каждый раз?

Также в соответствии с http://www.postgresql.org/docs/8.0/interactive/datatype-character.html - сжатие выполняется автоматически.Я прав?

1 Ответ

1 голос
/ 09 декабря 2011

PostgreSQL автоматически сжимает все, что хранится в TOAST, которое он использует для больших строк. Это сжатие прозрачно, поэтому при вызове кода похоже, что сжатия не было - для чтения и записи используется несжатая форма - но на самом деле это так.

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

Если вы используете myisampack с MySQL, он сжимает таблицу, но делает ее доступной только для чтения. Я не уверен, позволяет ли это экспресс-версия.

С любой базой данных вы можете выполнить собственное сжатие и сохранить полученный BLOB-объект:

Плюсы: Вероятно, лучше, чем сжатие PostgreSQL во многих случаях. Вероятно, лучше, чем любое сжатие, которое происходит в протоколе связи. Если вы используете данные в сжатом виде, то работа для вас сделана.

Минусы: Требуется работа с вашей стороны. Разрушает возможность поиска в соответствующем поле. Может неоптимально мешать внутреннему сжатию (хотя, вероятно, все же лучше, чем сжатие в тех баллах, где сжатие является победой) Если вы не можете использовать сжатые данные, то у вас есть больше работы, прежде чем получить к ним доступ.

...