Лучше поработать с БД...
Sumo 24.10.2012 22:04
/ 24.10.2012 22:20
— Разложить урлы по шардам, например, сделать 16 таблиц, номер которой определять по последнему символу sha1-хеша.
— Таблички, лучше иннодбешные. Тюним буфер-пул, т.е. даем по максимуму памяти для него.
— Поле с хешем делаем типа binary(20), чтобы база не тратила время на колейшны.
— В табличках сделать первичный ключ числовым (автоинкремент по беззнаковому инту), и построить отдельный индекс, но только по первым 4 символам поля с хешем (create index part_of_hash on hash_col(4)). Это позволит значительно уменьшить индекс и ускорить поиск данных. [В сочетании с бинари-типом это может серьезно помочь и без шардинга.]
— Если хочется читать как одну таблицу, то делаем вьюху из 16 юнионов, а обновление запихнуть в тригер или разруливать уже в парсеровском коде.