С этим нужно что-то делать!
Boss |
|
||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
При переходе с SED на COT возникла проблема. Как выяснилось, COT не может записать в базу страницы с большим объемом текста. Приведу пример для одной из страниц у меня на сайте. В таблицу page_text он максимум записывает 39 284 байта. В таблицу page_html записывается максимум 40 241 байт. Все что более этого объема - просто обрезается. Весь данный текст у меня на старом сайте занимает с бб-кодами 41 219 байт и SED его без проблем записывал в базу.
Насколько я вижу сама SQL таблица не накладывает ограничений. И у SED и у COT стоит тип для "page_text" просто "text". Это что из-за UTF-8 что ли? Что делать? Есть какие-нибудь пути решения? Как выяснилось большие тексты упираются в ограничения именно типа ячейки таблицы - TEXT. Изменив его на MEDIUMTEXT проблема решается.
Каждый из типов увеличивает размер в принципе до приемлемого уровня. Я не предлагаю LONGTEXT, но как минимум MEDIUMTEXT по-моему стоит установить по умолчанию в COT для текстов страниц. Статьи бывают больше. 40 кб далеко не предел. |
|||||||||||
This post was edited by Boss (2009-06-20 12:37, 15 years ago) |
Trustmaster |
|
---|---|
Да, это из-за того, что один символ русского алфавита занимает в UTF8 два байта, а не один. Перейти с TEXT на MEDIUMTEXT или LONGTEXT не проблема.
ALTER TABLE sed_pages MODIFY `page_text` MEDIUMTEXT COLLATE utf8_unicode_ci;
ALTER TABLE sed_pages MODIFY `page_html` MEDIUMTEXT COLLATE utf8_unicode_ci; May the Source be with you!
|