|
|
|
самый быстрый способ найти не уникальные значения.
|
|||
|---|---|---|---|
|
#18+
ситуация - имеем индекс уникальности uniq_index(field1,field2) как в этом случае написать запрос(самый еффективный вариант) для получения списка не уникальных значений по полю field1 предполагаем что ситуация гдето такая. записей пол милиарда, возможно там есть 10-50 записей имеющие двойника, может даже ктото тройника. Код: sql 1. прямой вариант , но интуитивно чувсвую, что не самый эффективный. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2014, 15:24:32 |
|
||
|
самый быстрый способ найти не уникальные значения.
|
|||
|---|---|---|---|
|
#18+
попробовать уйти в сторону JOIN-а или [not]exists-подзапроса. чтобы не группировать весь миллиард записей... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2014, 15:28:19 |
|
||
|
самый быстрый способ найти не уникальные значения.
|
|||
|---|---|---|---|
|
#18+
alex564657498765453 Код: sql 1. прямой вариант , но интуитивно чувсвую, что не самый эффективный.А я бы предложил посмотреть план этого запроса. Если он будет использовать индекс, то он должен быть эффективным. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2014, 15:49:14 |
|
||
|
самый быстрый способ найти не уникальные значения.
|
|||
|---|---|---|---|
|
#18+
Добрый Э - Эх, Имхо, это будет дольше. В обоих вариантах придется пройти весь миллиард записей и для каждой проверять соответствие. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2014, 15:57:15 |
|
||
|
самый быстрый способ найти не уникальные значения.
|
|||
|---|---|---|---|
|
#18+
miksoftА я бы предложил посмотреть план этого запроса. Если он будет использовать индекс, то он должен быть эффективным.Ну, да. Тс не уточнил, что индекс b-tree. Или вы подразумеваете, что возможна ситуация при которой в случае b-tree не будет использован индекс для данного запроса? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2014, 16:01:53 |
|
||
|
самый быстрый способ найти не уникальные значения.
|
|||
|---|---|---|---|
|
#18+
retvizanИли вы подразумеваете, что возможна ситуация при которой в случае b-tree не будет использован индекс для данного запроса?Ничего особенного я не подразумеваю, просто надо проверить. Попадались случаи странного поведения оптимизатора в подобных случаях. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2014, 16:05:52 |
|
||
|
самый быстрый способ найти не уникальные значения.
|
|||
|---|---|---|---|
|
#18+
alex564657498765453ситуация - имеем индекс уникальности uniq_index(field1,field2) как в этом случае написать запрос(самый еффективный вариант) для получения списка не уникальных значений по полю field1 предполагаем что ситуация гдето такая. записей пол милиарда, возможно там есть 10-50 записей имеющие двойника, может даже ктото тройника. Код: sql 1. прямой вариант , но интуитивно чувсвую, что не самый эффективный. как вариант для проверки скорости: NOT EXISTS ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2014, 17:25:51 |
|
||
|
самый быстрый способ найти не уникальные значения.
|
|||
|---|---|---|---|
|
#18+
... скорее просто EXISTS select * from tbl T1 WHERE EXISTS (select 1 FROM tbl T2 where условия двойника AND T1.ID != T2.id) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2014, 17:28:22 |
|
||
|
самый быстрый способ найти не уникальные значения.
|
|||
|---|---|---|---|
|
#18+
javajdbc, смелее даём варианты... счас закончиться генерация случайных данных для базы, там будет под 10млн записей. попробую, отпишу. ну и генератор запущу на создание ещо 490млн записей ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2014, 18:06:25 |
|
||
|
самый быстрый способ найти не уникальные значения.
|
|||
|---|---|---|---|
|
#18+
alex564657498765453javajdbc, смелее даём варианты... мне кажется, это не тот случай, где может быть много нормальный вариантов запроса по вашему заданию ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2014, 18:13:46 |
|
||
|
самый быстрый способ найти не уникальные значения.
|
|||
|---|---|---|---|
|
#18+
alex564657498765453javajdbc, смелее даём варианты... счас закончиться генерация случайных данных для базы, там будет под 10млн записей. попробую, отпишу. ну и генератор запущу на создание ещо 490млн записей Смелость -- дело хорошее, но на милионных обьемах легко можно сервер заморозить, как два байта переслать. Я бы начал с 100К для начала, просто прошупать почву... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2014, 18:24:32 |
|
||
|
самый быстрый способ найти не уникальные значения.
|
|||
|---|---|---|---|
|
#18+
javajdbc... скорее просто EXISTS Это вариант проверки не скорости, а силы тормозов. Nested Loop вместо одного прохода по индексу... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2014, 16:12:30 |
|
||
|
самый быстрый способ найти не уникальные значения.
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakovjavajdbc... скорее просто EXISTS Это вариант проверки не скорости, а силы тормозов. Nested Loop вместо одного прохода по индексу... возможно, вы и правы, а может и нет. клаву давить -- не мешки таскать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2014, 04:49:59 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=38561164&tid=1835214]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
43ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
| others: | 236ms |
| total: | 365ms |

| 0 / 0 |
