varchar против текста - MySQL - PullRequest
       0

varchar против текста - MySQL

3 голосов
/ 21 апреля 2011

В моем проекте пользователь может написать комментарий [обычный текст] и просмотреть комментарий других, может удалить свой комментарий, но не может обновить комментарий!
В таком случае, что мне следует использовать?

Текст или Varchar (4048) ?
В чем преимущество и недостаток текста и Varchar (большой, например 4000) ?
Достаточно ли безопасно, если я заменю только «<» на «& lt;»и '>' с '& gt;'чтобы убедиться, что все в порядке ?
[я не хочу конвертировать все подобные '' & ..., чтобы сэкономить место, я просто хочу убедиться, что пользователь не может написать javascript]

Будет лимит на передней части

Ответы [ 4 ]

4 голосов
/ 21 апреля 2011

Varchar обычно быстрее при извлечении, когда размер разумный, так как он хранится в таблице, а TEXT хранится вне таблицы с указателем на местоположение.

Спасибо

2 голосов
/ 21 августа 2016

(У вас есть несколько вопросов; я отвечу на тот, который указан в заголовке.)

Разница только между VARCHAR(4000) и TEXT заключается в том, что INSERT будет усекаться либо до 4000 символов или 65536 байтов соответственно.

Для значений меньше 4000, есть случаи, когда временная таблица в комплексе SELECT будет работать быстрее, например, VARCHAR(255), чем TINYTEXT. По этой причине я чувствую, что никогда не следует использовать TINYTEXT.

1 голос
/ 15 января 2013

это зависит от поведения приложения. пространство, выделенное внутри таблицы блока, уменьшает пространство для других столбцов и уменьшает данные плотности внутри него. Если MySQL использует полное сканирование таблицы, сканируется много блоков, это неэффективно. так что это зависит от ваших запросов sql.

1 голос
/ 21 апреля 2011

Чтобы защитить себя от XSS-атаки, закодируйте ее с помощью функции htmlentities.

Кроме этого, выбор типа данных больше всего зависит от размера контента.Если он может превышать 4048 символов, используйте текстовый тип данных.Если многие сообщения будут большими, использование текстового типа данных может уменьшить потраченное впустую пространство данных и работать немного лучше, чем гигантский varchar, но это зависит от вашей ситуации, вам лучше всего протестировать альтернативы.предпочитаю varchar, потому что с ним легче иметь дело с точки зрения кодирования, если не сказать ничего, и возвращаюсь к тексту, если содержимое может превышать размер varchar.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...