При подключении к базе данных нужно тоже кодировку указывать
SHOW VARIABLES LIKE 'char%';
SHOW VARIABLES LIKE 'coll%';
Может быть есть более правильный вариант...
у меня идет десятки тысяч вставок в час.Не смешно. 100 тыс. вставок в час - это 30 запросов в секунду, для более-менее сервера вообще ниачём.
Если делать доп-проверки есть ли нужная запись в справочнике это сильно снизит производительность.
Как можно в моем случае нормализовать структуру?
как это сделать автоматически?
Можно было бы его сделать справочником, но я пока не знаю все возможные его значения, поэтому наверно лучше нормализацией не заниматься.
Однако в меню мне нужно отображать все уникальные значения из него. DISTINCT делать по нему крайне долго. Получается нужна какая-то таблица которая пересчитывается постоянно.
а зачем тут вообще тогда left join, вроде и без него все считает как надо xD
зачем тут вообще тогда left join
Это логично.
Но вот то, что не настраиваем свойства соединения, а даём дополнительные команды (причём даже не опять-таки в свойствах соединения - там есть место для доп. команд при установлении связи,- а из клиентского кода) - вот это совсем даже не логично.
Особенно если учесть такую мелочь, что результат выполнения команды SET NAMES локален для соединения. Так что если используется пул соединений, или если посередь процесса соединение порвётся и будет автоматически восстановлено, то результат выполнения команды останется "где-то там"...