|
|
|
Использование индекса при LIKE %
|
|||
|---|---|---|---|
|
#18+
Приветствую. У меня есть большая таблица на несколько миллионов записей. Над ней надо провести некоторые вычисления, которые требуют много CPU, сделанные вычисления записать в ту же строчку. Строчку пометить как выполненную. Для вычисления я использую PHP, на множество серверов. Для обсчета делаю следующую выборку SELECT * from files where run=0 AND id LIKE "%3" ORDER BY `id` ASC LIMIT 1 Где 3 - это ID сервера. Таким образом я могу натравить 10 серверов для параллельных вычислений. Проблема в том, что такой SELECT очень долго выполняется, до 10 сек (EXPLAIN показывает rows все строки). Когда сам мат процесс может выполняться всего 2 сек. Теряется весь смысл в распределенных вычислений. Подскажите, как ускорить процесс выборки или может есть какой то другой алгоритм распаралелить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2014, 16:23:09 |
|
||
|
Использование индекса при LIKE %
|
|||
|---|---|---|---|
|
#18+
HD0, не понял, а зачем в этом запросе LIKE и зачем в нем процент? покажите DDL таблицы и пример исходных данных ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2014, 16:55:33 |
|
||
|
Использование индекса при LIKE %
|
|||
|---|---|---|---|
|
#18+
А что , простейший вариант - пометить через UPDATE .. LIMIT M и тем самым получить M записей для каждого конкретного обработчика, не подходит? LIKE %3 - похоже на остаток от деления на 10 чтобы общий процесс вычислений в целом двигался "вперед" по направлению к увеличению идентификатора и записи для конкретного обработчика выбираются с некоторым разрежением. Индексы так не будут использоваться. Так же не буду использоваться, если соорудить выражение как остаток от деления. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2014, 18:53:02 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=38523546&tid=1835414]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
50ms |
get topic data: |
17ms |
get forum data: |
3ms |
get page messages: |
49ms |
get tp. blocked users: |
2ms |
| others: | 241ms |
| total: | 393ms |

| 0 / 0 |
