у меня идет десятки тысяч вставок в час.Не смешно. 100 тыс. вставок в час - это 30 запросов в секунду, для более-менее сервера вообще ниачём.
Если делать доп-проверки есть ли нужная запись в справочнике это сильно снизит производительность.
Как можно в моем случае нормализовать структуру?
как это сделать автоматически?
Можно было бы его сделать справочником, но я пока не знаю все возможные его значения, поэтому наверно лучше нормализацией не заниматься.
Однако в меню мне нужно отображать все уникальные значения из него. DISTINCT делать по нему крайне долго. Получается нужна какая-то таблица которая пересчитывается постоянно.
а зачем тут вообще тогда left join, вроде и без него все считает как надо xD
зачем тут вообще тогда left join
Существует ли для Oracle удобный инструмент для работы с базой
удобный инструмент для работы с базой по типу phpMyAdmin для MySQL
Разве контролировать sql нельзя обычными подготовленными запросами?
структура данных в этом поле
SELECT ...
FROM Company
JOIN Company ON Company.companyId = Company.parentId
...
SELECT ...
FROM Company AS t1
JOIN Company AS t2 ON t1.companyId = t2.parentId
...
когда убираю индекс у меня идёт быстрее вставка данныхНу это можно было и без эксперимента сказать. Индекс ВСЕГДА снижает скорость изменения данных, если происходят изменения в значении его выражения.
надо заполнить таблицу большим массивом новых данныхУдаление индекса, массированная корректировка, пересоздание индекса - обычная практика. И зачастую - эффективная.
Правильный вариант - это импортировать средствами MySQL (LOAD DATA LOCAL INFILE .. REPLACE). А читать файл на PHP и потом пихать по одной записи в таблицу - это дурь.