В исходной таблице был primary_key id_domain с автоинкрементом. По нему и делались апдейты. По домену смысла не было делать индекс - выборок не было, в поиске не участвовало поле.
Воткните список доменов обычными INSERT`ом в табличку (я кидал - было 1.2 ляма). После пятисотой тыщи начинались такие тормоза на запрос (AMD 3000+ 64 / 1.5 Gb Ram), что плакать хотелось. Это - обычный инсерт... Потом, когда пошел апдейт на булевы значения (в обработке/нет) пошли проблемы, когда два из 150 процессов тупо друг-дружку перекрывали. Лок, как таковой - не очень быстро, при таких объемах (это так кажется, что будет летать - можете для эксперимента дампик пульнуть в базу - увидите сами).
Сначала с таблицами колдовали - не удалось добиться приемлимого времени обработки запросов. Перешли на модификацию бизнес-логики (обработка запросов стэками) - не помогло. Приемлимых результатов добились только разбиением списка по первым буквам.
Собсно, вот так. А на счет реализации... ХЗ - под каждую задачу своё решение. :)
Складной стулик? :D
3 запроса вместо 1-го. Решение, конечно... :o
Денормализация бд - вообще нелогичное занятие. Разбивались данные на таблицы не для повышения конкурентности, а для ускорения исполнения запросов :)
А накуя я показал булево значение? Наверное, показать, что могут понадобиться транзакций(Покажете, как делать "красиво" без использования InnoDB лок? Хотя, соглашусь, ответ не на поверхности :))? По секрету скажу - 150 процессов использовало таблички. Эффективно отражать коллизии можно только при транзакциях.
Судя по описанию, текстовые и чаровые поля можно вынести в отдельную таблицу.
Соответственно, индексы по полям, которые планируется использовать в условиях (WHERE...)
HraKK, на счет "тьфу" - чот слабо верится... Помнится простой опыт - список доменов в таблице (1.2 ляма)
id_domain (int 11), domain (varchar 255), some_boolean (tinyint 4). Индекс по id_domain (primary_key не автоинкремент), some_boolean. Приходилось пилить на 25 таблиц - по начальным буквам, для шустрой работы. InnoDB, транзакции - очень неприятно в оригинале работать было. Помнится, за 800к уже сложно запросы (простые Insert / Update) проходили - по 2-3 секунды, что для нормальной работы было чрезчур ;)
С днем =)
Рабочих, творческих, душевных благ ;)
У каждого свое... Я бы мамбу льнул на локалку. Чтобы потом Джефу продать :D
ТС, я код просил. Если Вы понимаете зачем нужен ООП, покажете хорошие применения своим знаниям - помогу с работой (за процент, разумеется). Не нужно мне визуалку показывать... Тем более - там вообще нечего показывать - хня какая-то.
Говорила мне мама, работай в koi8-r ((((