Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
SELECT * FROM где > 2000000 записей
|
|||
|---|---|---|---|
|
#18+
Дарова всем гуру Вопрос такой Есть таблица где > 2 000 000 записей Если я делаю запрос типа SELECT * FROM ... - и в параметрах указываю значения которых нет в этой таблице - запрос происходит медленно - ~2 секунды Можно ли какнить избавится от такой проблемы? Таблица из трех полей INTEGER,NUMERIC,NUMERIC поиск произвожу по NUMERIC на них создал индексы CREATE INDEX ... но - безуспешно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2006, 12:51 |
|
||
|
SELECT * FROM где > 2000000 записей
|
|||
|---|---|---|---|
|
#18+
Текст запроса "с параметрами, значений которых нет" приведите, пожалуйста. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2006, 12:57 |
|
||
|
SELECT * FROM где > 2000000 записей
|
|||
|---|---|---|---|
|
#18+
просто создать индексы мало, необходимо еще собрать статистику ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2006, 13:20 |
|
||
|
SELECT * FROM где > 2000000 записей
|
|||
|---|---|---|---|
|
#18+
Кроме того, поле NUMERIC допускает наличие пустых (NULL) значений? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2006, 13:22 |
|
||
|
SELECT * FROM где > 2000000 записей
|
|||
|---|---|---|---|
|
#18+
Таблица Код: plaintext 1. 2. 3. 4. 5. 6. 7. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. Конечно можно все это выполнить и с помощью запроса Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2006, 14:06 |
|
||
|
SELECT * FROM где > 2000000 записей
|
|||
|---|---|---|---|
|
#18+
Щукина АннаТекст запроса "с параметрами, значений которых нет" приведите, пожалуйста. Кста - в часть запроса после WHERE я ввожу значение, которого нет в таблице запрос таким образом проходит по всей таблице и это скорей всего вызывает тормоза ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2006, 14:10 |
|
||
|
SELECT * FROM где > 2000000 записей
|
|||
|---|---|---|---|
|
#18+
st_sergпросто создать индексы мало, необходимо еще собрать статистику Какой командой? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2006, 14:11 |
|
||
|
SELECT * FROM где > 2000000 записей
|
|||
|---|---|---|---|
|
#18+
Вот результат explain analyze select geo_by_ip('123123'); NOTICE: Cant find such ip - 123123 QUERY PLAN -------------------------------------------------------------------------------------------- Result (cost=0.00..0.01 rows=1 width=0) (actual time=26212.346..26212.347 rows=1 loops=1) Total runtime: 26212.381 ms (2 rows) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2006, 14:22 |
|
||
|
SELECT * FROM где > 2000000 записей
|
|||
|---|---|---|---|
|
#18+
в соответствии с твоим запросом, имхо, лучше было б сделать один индекс Код: plaintext 1. explain analyze вызова функции, нидает практически никакой информации, надо делать Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2006, 15:17 |
|
||
|
SELECT * FROM где > 2000000 записей
|
|||
|---|---|---|---|
|
#18+
а есть ли объяснение - чем это лучше? т.е создание индекса на две колонки вместо создания двух индексов? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2006, 19:08 |
|
||
|
SELECT * FROM где > 2000000 записей
|
|||
|---|---|---|---|
|
#18+
explain analyze уже смотрел? там по идее должно быть наглядное объяснение. хотя что лучше это еще не факт, надо смотреть план выполнения запроса ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2006, 10:27 |
|
||
|
SELECT * FROM где > 2000000 записей
|
|||
|---|---|---|---|
|
#18+
автор Код: plaintext кажется в этом лимите чего-то не хватаеть. А именно ORDER BY т.к. , очевидно, нужен Код: plaintext st_sergв соответствии с твоим запросом, имхо, лучше было б сделать один индекс Код: plaintext нужен Код: plaintext Код: plaintext Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2006, 11:17 |
|
||
|
SELECT * FROM где > 2000000 записей
|
|||
|---|---|---|---|
|
#18+
Если блоки IPNum не пересекаются и не являются вложенными друг в друга, то можно попробовать следующий вариант: 1. Создаём индекс только по startipnum 2. Используем следующий запрос: Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2006, 13:52 |
|
||
|
SELECT * FROM где > 2000000 записей
|
|||
|---|---|---|---|
|
#18+
Тк я не админ базы - а база ругается no space on device - пока не проверил ничего пока админ не разберется что к чему Но все равно спасиба огромное на днях думаю все равно все проверю ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.10.2006, 16:52 |
|
||
|
SELECT * FROM где > 2000000 записей
|
|||
|---|---|---|---|
|
#18+
В общем запрос типа Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2006, 14:37 |
|
||
|
SELECT * FROM где > 2000000 записей
|
|||
|---|---|---|---|
|
#18+
Кста - как можно расшифровать такую запись в ответ на запрос? Код: plaintext 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2006, 18:26 |
|
||
|
SELECT * FROM где > 2000000 записей
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2006, 11:25 |
|
||
|
|

start [/forum/topic.php?fid=53&msg=34032056&tid=2006037]: |
0ms |
get settings: |
5ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
54ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
40ms |
get tp. blocked users: |
2ms |
| others: | 231ms |
| total: | 358ms |

| 0 / 0 |
