Здравствуйте.
Имеются несколько ресурсов, в которых сами базы много кочевали между версиями MySQL с незапамятных времен. Очень вероятно, что еще с 4 версии.
Как бы там ни было, чарсет там стоял и стоит latin1, хотя языки внутри разные, есть и русский и азиатские.
Дальше только догадки, хочется их прояснить.
Сейчас работает все нормально, в смысле тексты отображаются ок.
Хотя на выходе, судя по хедерам отдается всё в utf8, как и любят браузеры.
Так вот, базы огромные, нагрузка приличная.
Я знаю, как все эти базы перекодировать нормально в utf8, но это займёт много времени, и хотелось бы узнать, много ли нагрузки добавляет PHP когда читает из базы в latin1 а отдаёт веб серверу в utf8 ?
Причем в этих базах бывает так, что:
в базе дефолт стоит utf8, а у таблицы - latin1
или даже у таблицы - utf8, а у поля - latin1
Я читал, что при таком раскладе как минимум могут быть проблемы с поиском и сортировкой.
А с нагрузкой?
Базы по 10-15гигов.
MySQL и charset latin1
Re: MySQL и charset latin1
Приветствую!
пхп ничего не перекодирует, просто что отдает база то и выводит
а вот влияет ли это как-то на нагрузку мускла - я не тестировал, просто не касался этого вопроса
но думаю что оптимизация сложных запросов \ инедксов принесет больше пользы, чем кодировки
думаю что например если прибить индексы которые не используются - уже будет буст больше чем любая кодировка
пхп ничего не перекодирует, просто что отдает база то и выводит
а вот влияет ли это как-то на нагрузку мускла - я не тестировал, просто не касался этого вопроса
но думаю что оптимизация сложных запросов \ инедксов принесет больше пользы, чем кодировки
думаю что например если прибить индексы которые не используются - уже будет буст больше чем любая кодировка
Don't forget to run script update
Re: MySQL и charset latin1
Здесь есть затруднения.
Можно конечно грохнуть все индексы, которые выведет:
но как-то это неправильно, мне кажется.
Можно конечно грохнуть все индексы, которые выведет:
Code: Select all
select * from sys.schema_unused_indexes;Re: MySQL и charset latin1
Ситуация такая:
например, если сайт только с сортиоовкой по ЦТР то индекс по дате не надо
если нет сортировки по duration - тоже не надо
но например если есть страницы типа duration + category_id то имеет смысл добавить этот индекс
и тп , не ничего необычного)
но если добавить все вероятные индексы по дефолту то каждое обновление цтр (а оно каждую минуту) будет перестраивать кучу индексов = нагрузка
Учитывая, что создать индекс - дело пары минут, то я не вижу проблем с тем, что б поэкспериментировать с индексами
смотрим нагрузку, добавляем\убираем что-то , сравниваем
что-то пошло не так - просто вернули индекс и тп
можно так же пройтись MySQLTuner , может он скажет что-то полезное
например, если сайт только с сортиоовкой по ЦТР то индекс по дате не надо
если нет сортировки по duration - тоже не надо
но например если есть страницы типа duration + category_id то имеет смысл добавить этот индекс
и тп , не ничего необычного)
но если добавить все вероятные индексы по дефолту то каждое обновление цтр (а оно каждую минуту) будет перестраивать кучу индексов = нагрузка
Учитывая, что создать индекс - дело пары минут, то я не вижу проблем с тем, что б поэкспериментировать с индексами
смотрим нагрузку, добавляем\убираем что-то , сравниваем
что-то пошло не так - просто вернули индекс и тп
можно так же пройтись MySQLTuner , может он скажет что-то полезное
Don't forget to run script update







