Для тех, кого это может касаться. Немного
фактов про кодировки и связанную с этим производительность. Что бы закончить топик на позитивной ноте, да и вообще отметить наше 3500 сообщение тут

Первое и главное. cp1251 использует для хранения
ОДИН БАЙТ.
По
ссылке (данной выше gylys-ом), с полной очевидностью написано, что идея utf8 в том, что бы использовать под русские символы
ДВА БАЙТАЦитата
" The idea of UTF-8 is that various Unicode characters are encoded using byte sequences of different lengths: Most European and Middle East script letters fit into a two-byte sequence: extended Latin letters (with tilde, macron, acute, grave and other accents), Cyrillic, Greek, Armenian, Hebrew, Arabic, Syriac, and others."
Итак, уже просто переведя базу в utf8 русский язык начинает занимать в 2 раза больше места.
Там же есть интересный "хинт" по "сохранению места". Рекомендуется использовать varchar вместо char, т.к. в char мускул резервирует
ТРИ БАЙТА под символ, ВНЕ зависимости от того, какой символ используется (даже если это цифры или латинские буквы). Итак, как видим, раздуть размер БД можно легко и просто
Цитата
Tip: To save space with UTF-8, use VARCHAR instead of CHAR. Otherwise, MySQL must reserve three bytes for each character in a CHAR CHARACTER SET utf8 column because that is the maximum possible length. For example, MySQL must reserve 30 bytes for a CHAR(10) CHARACTER SET utf8 column.
Итак, если в базе у нас встречаются текстовые поля фиксированной длины, то мы тратим уже в 3 раза больше места, под простые текстовые поля.
Но довольно теории. Немного практики. mysql хранит данные в файлах MYD и индексы к ним в MYI. (
попытка gylys-а использовать в качестве аргумента SQL файлы, дампы таблиц, по сути безграмотная провокация, т.к. мускулом они в работе ВООБЩЕ не используются). В принципе размер занимаемый БД можно посмотреть прямо в phpmyadmin, но можно и напрямую.
Итак (дампы сделаны с разницей несколько минут, максимум 100 записей разница; первое - cp1251, второе utf8;
база абсолютно живая - русского текста примерно половина - т.к. пробелы и html форматирование занимает много места):
а) (таблица где нет текстовых полей)
63082976 Aug 25 04:42 msgi.MYD
63082912 Aug 25 04:45 msgi.MYD
б) (таблица где есть 2 текстовых поля переменной длины - text, и несколько int типа)
343846768 Aug 25 04:42 msgt.MYD
492589760 Aug 25 04:46 msgt.MYD
в) (таблица где есть 2 текстовых поля постоянной длины - char, и несколько int типа)
22860729 Aug 25 04:22 rawfrl.MYD
67706297 Aug 25 04:44 rawfrl.MYD
г) (файлы индексов, полнотекстовый там кажется у нас, не помним точно, они особо не важны, но раз уж показываем статистику, почему бы и нет)
314408960 Aug 25 05:00 msgt.MYI
363799552 Aug 25 04:59 msgt.MYI
д) (специально сделали таблицу копию msgt, но без хтмл форматирования и избыточных пробелов, но сделали специально, т.к. выше говорили о
русскомтексте и уж надо было почище эксперимент поставить): разница в 1.8 раза (сорри, окно уже закрыли, не записали точных цифр)
Комментарии по объему излишни, но в принципе на объем сам по себе наплевать... важно на что он влияет и чему является причиной.
А влияет он на скорость: создания индексов, апдейта базы, выборки/сортировки/поиска не по индексам (тоже бывает, даже в грамотно спроектированных таблицах), бакапа базы и т.д... . И всё это практически в прямой зависимости.
Индекс например в утф8 создается в 1.5 раза дольше на таблицах пункта Б и в 2 раза на таблицах пункта В. Апдейты медленнее в утф в 2 раза на таблицах пункта Б и в 1.5 раза на таблицах пункта В. Скорость бакапа прямо пропорцинально от размера зависит. Выборки не по индексам прямо пропорциональны размеру таблиц. И всё в таком духе.
Конечно каждый выбирает сам - покупать вдс в 1.5-3 раза мощнее и использовать utf8 или перевести для русского языка базы в cp1251 и платить меньше. Что выгодно хостерам - ну, опять же, пусть каждый делает выводы сам.
P.S.: Больше на эту тему выступать не будем, неинтересно доказывать очевидное и общеизвестное.