2012-03-22 5 views
0

Я проектирую новый форум для своей компании, и я хотел подтвердить, что сохранение сообщений в MySQL в MySQL будет масштабируемым и будет иметь хорошую производительность ..? Сообщения могут содержать символы около 400 (возможно, я ограничу до 400 символов). Если я сохраню 400 символов текста в поле MySQL, а в таблице будет 10 миллионов строк, это повлияет на производительность ..? Мое главное ограничение - производительность. Может Пожалуйста, кто-то пролить свет на этуМаксимальная длина данных в поле MySQL

ответ

5

Есть два типа данных для рассмотрения VARCHAR или TEXT

Что тип данных Вы выбираете, зависит от

  • Как часто вы отобразить его?
  • Общее количество символов хранения

TEXT и BLOB хранится со стола с таблицы только имея указатель на место фактического хранения.

VARCHAR хранится в строчке со столом. VARCHAR быстрее, когда размер является разумным, компромисс которого будет быстрее, зависит от ваших данных и вашего оборудования, вы бы хотели сравнить реальный мир с вашими данными.

VARCHAR (сохраненный inline) обычно быстрее, если данные часто извлекаются (включены в большинство запросов). Однако для большого объема данных, которые обычно не извлекаются (то есть не ссылаются на какие-либо запросы), тогда лучше не хранить данные, хранящиеся в строке. Существует верхний предел размера строки для данных, хранящихся в строке.

Когда таблица имеет столбцы TEXT или BLOB, таблица не может быть сохранена в памяти. Это означает, что каждый запрос (который не попадает в кэш) должен получить доступ к файловой системе, которая на порядки медленнее, чем память.

Если вы размещаете контент, используйте поле «Текст», но сохраняйте поле «Текст» в отдельной таблице, доступ к которому возможен только тогда, когда вам это действительно нужно. Таким образом, исходная таблица может храниться в памяти и будет намного быстрее.

Думайте об этом как о разделении данных в одну «таблицу памяти» и одну «таблицу файлов». Причина этого заключается в том, чтобы избежать доступа к файловой системе, за исключением случаев, когда это необходимо (т. Е. Только тогда, когда вам нужен текст).

Вы можете попробовать (сообщения, post_text) или (post_details, posts) или что-то в этом роде.

Смежные вопросы