Неясно ещё одно, если сортировать эту таблицу по полю УРЛ - то проверка на уникальность записи при вносе - будет занимать минимальное количество времени - например поиск делением пополам - будет и проверять и уникальность и сразу вставлять новый урл в то место, где он должен быть.
Программными средствами делать это - бредово.
Какие средства есть для этого в мускуле - и каким образом нужно создать таблицу,чтобы убедиться, что это именно так.
Было проверено время выполнения скрипта - внос в эту таблицу 20-30 урлов происходит не более чем за одну секунду, то есть мускуль уже явно использует нечто вроде этого.
от 3 до 5 секунд занимает пачка из следующих операций:
1. lock table for write;
2. select id,url where lastupdate=0;
3. update table where id=thisid;
4. unlock tables;
то есть даже не таща саму страницу, это действо каким-то образом занимает тонну времени...
Может есть другое средство избежать лочинья таблиц, но ведь одновременно запущенные 30 потоков начинают жрать одни и те же урлы по нескольку раз.
Сам по себе lock много времени не жрёт... убрав его при одном запущенном потоке ускорение составило лишь одну секунду.
Проблема в выборке адреса и обновлении его поля.