|
|
|
fias медленно ищет
|
|||
|---|---|---|---|
|
#18+
В общем это дебют в настройке продакшен постгреса да и процесс создание базы был не мной сделан О проблеме - собственно смысл в том, что есть база фиас типа КЛАДРа Поиск идёт около 5 секунд (долго для ввода поля в веб формочке) Запрос у нас такого типа: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. вот список всех индексов в базе Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. Если кто настраивал это счастье то подскажите?, что сделать. Или не морочить голову с индексами и сразу прикручивать sphinxsearch? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2015, 15:12 |
|
||
|
fias медленно ищет
|
|||
|---|---|---|---|
|
#18+
dtulyakovвот список всех индексов в базесоздай индекс adrobj_idx666. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2015, 15:17 |
|
||
|
fias медленно ищет
|
|||
|---|---|---|---|
|
#18+
ilike to move it, move itdtulyakovвот список всех индексов в базесоздай индекс adrobj_idx666.;o] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2015, 15:22 |
|
||
|
fias медленно ищет
|
|||
|---|---|---|---|
|
#18+
ilike to move it, move itdtulyakovвот список всех индексов в базесоздай индекс adrobj_idx666. кроме таких " гениальных " идей по существу есть что сказать? ЗЫ я с фиасом не работал и как оно там устроено понятия не имею, да и постгрес тоже особо не юзал ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2015, 15:27 |
|
||
|
fias медленно ищет
|
|||
|---|---|---|---|
|
#18+
dtulyakov постгрес тоже особо не юзалоно, какбе, заметно умного учить -- только портить ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2015, 16:06 |
|
||
|
fias медленно ищет
|
|||
|---|---|---|---|
|
#18+
какбеdtulyakov постгрес тоже особо не юзалоно, какбе, заметно умного учить -- только портить куча ответов и не одного по существу на любом форуме есть те кто знает ответ и те кто только умничает либо отправляет в гугл если нет желания помогать или указывать направления в поиске проблемы то лучше не отвечать толк от флуда остряков мне не поможет да и самим ума не прибавит ЗЫ если есть желание поумничать то можно форум автомобилистов пойти и там блистать своими скуль познаниями :D ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2015, 16:18 |
|
||
|
fias медленно ищет
|
|||
|---|---|---|---|
|
#18+
dtulyakovна любом форуме есть те кто знает ответ и те кто только умничает либо отправляет в гугли те, кто не знает ответ и не желает пользоваться гуглом. dtulyakovесли нет желания помогать или указывать направления в поиске проблемы то лучше не отвечатьесли нет желания научиться, хотя бы искать в гугле по ключевым словам, то не стоит обижаться на тех, кто не хочет это делать за тебя, но вынужден натыкаться на одни и те же вопросы, как завсегдатай форума. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2015, 16:32 |
|
||
|
fias медленно ищет
|
|||
|---|---|---|---|
|
#18+
dtulyakov куча ответов и не одного по существу Один из вариантов точного ответа: КГ/АМ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2015, 17:30 |
|
||
|
fias медленно ищет
|
|||
|---|---|---|---|
|
#18+
dtulyakov, я не спец в фиас, поэтому не могу смоделировать проблему. Есть место, где можно скачать постгресовый дамп, чтобы посмотреть на вашу проблему ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2015, 18:11 |
|
||
|
fias медленно ищет
|
|||
|---|---|---|---|
|
#18+
dtulyakov, запостить выхлоп такого запроса Код: sql 1. 2. 3. к проблемному запросу в начало дописать `EXPLAIN (analyze, buffers) `, выхлоп скормить в http://explain.depesz.com/ и запостить сюда ссылку на разобранный план и сам запрос. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2015, 18:11 |
|
||
|
fias медленно ищет
|
|||
|---|---|---|---|
|
#18+
А занахрена вам дампы и эксплайны? Очевидно, что обычные индексы по непрефиксному like не работают. А вариантов индексирования поиска по паттерну, помимо этого форума и глобального интернета, есть в документации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2015, 18:30 |
|
||
|
fias медленно ищет
|
|||
|---|---|---|---|
|
#18+
триграма в сердцеА занахрена вам дампы и эксплайны? Очевидно, что обычные индексы по непрефиксному like не работают. А вариантов индексирования поиска по паттерну, помимо этого форума и глобального интернета, есть в документации.там будет видно, какой оно индекс пользует, пользует ли, и большая ли база (если тупо сканит) и т.п. ну вот так решили расспрашивать. Моно с порога count-ы попросить, и ddl того, что в запросе. Всё равно придётся в каком -то порядке этот черный ящик опрашивать. Само оно не рюхает пока. А если авторы полнотекста решили вписаться сами -- что ж плохого, последим за руками. мне-то лениво было от печки толкать. вам тоже. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2015, 18:53 |
|
||
|
fias медленно ищет
|
|||
|---|---|---|---|
|
#18+
триграма в сердцеА занахрена вам дампы и эксплайны? Очевидно, что обычные индексы по непрефиксному like не работают. А вариантов индексирования поиска по паттерну, помимо этого форума и глобального интернета, есть в документации. если строки не длинные,то можно подумать про wildspeed http://www.sai.msu.su/~megera/wiki/wildspeed ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2015, 22:05 |
|
||
|
fias медленно ищет
|
|||
|---|---|---|---|
|
#18+
Oleg Bartunov, Да-да. Само время для дебюта настройки устанавливать какой-то контриб с необходимостью компиляции. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2015, 22:25 |
|
||
|
fias медленно ищет
|
|||
|---|---|---|---|
|
#18+
Oleg Bartunovdtulyakov, я не спец в фиас, поэтому не могу смоделировать проблему. Есть место, где можно скачать постгресовый дамп, чтобы посмотреть на вашу проблему ? дамп базки 1,7Гб в несжатом виде сейчас затарю и на гуглдиск попробую выложить ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2015, 07:26 |
|
||
|
fias медленно ищет
|
|||
|---|---|---|---|
|
#18+
vyegorovdtulyakov, запостить выхлоп такого запроса Код: sql 1. 2. 3. к проблемному запросу в начало дописать `EXPLAIN (analyze, buffers) `, выхлоп скормить в http://explain.depesz.com/ и запостить сюда ссылку на разобранный план и сам запрос. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. по поводу запроса вот разобранный план и сам запрос Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2015, 07:31 |
|
||
|
fias медленно ищет
|
|||
|---|---|---|---|
|
#18+
dtulyakov, у вас 4-й шаг Код: sql 1. 2. 3. 4. --Full scan таблички. . так оно не заиграет. приведите все ddl ваших индексов. Хотя бы тех, которые имеют в ddl чт-то помимо btree и вот что вот это вот " addrobjFullTsvr_pkey" такое -- тложе приведите. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2015, 08:21 |
|
||
|
fias медленно ищет
|
|||
|---|---|---|---|
|
#18+
Oleg Bartunovdtulyakov, я не спец в фиас, поэтому не могу смоделировать проблему. Есть место, где можно скачать постгресовый дамп, чтобы посмотреть на вашу проблему ? fias.sql.txz ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2015, 08:29 |
|
||
|
fias медленно ищет
|
|||
|---|---|---|---|
|
#18+
dtulyakov, для убыстрения подобных операций можно использовать работу с триграммами dtulyakov Код: sql 1. особенности: нет поддержки многобайтных кодировок (UTF8, ...), но это можно обойти через транслитерацию. Если у вас БД в однобайтной кодировке (CP1251, ...) то тогда и проблем нет 1. добавляем расширение для работы с триграммами CREATE EXTENSION pg_trgm; 2. создаем индекс на нужном поле CREATE INDEX addrobj_formalname_idx ON addrobj USING gist (formalname gist_trgm_ops); 3. теперь ищем select * from addrobj where formalname ~ 'содовая'; если же у вас многобайтная кодировка, то 2. создаем функциональный индекс CREATE INDEX addrobj_formalname_idx ON addrobj USING gist (russian2translit(formalname) gist_trgm_ops); где, russian2translit функция трансформации русского текста в транслит. 3. теперь ищем select * from addrobj where russian2translit(formalname) ~ russian2translit('содовая'); после этого тормоза связанные с поиском по паттерну вас покинут ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2015, 17:43 |
|
||
|
fias медленно ищет
|
|||
|---|---|---|---|
|
#18+
grufosпосле этого тормоза связанные с поиском по паттерну вас покинут или приумножатся для экстремально коротких паттернов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2015, 18:05 |
|
||
|
fias медленно ищет
|
|||
|---|---|---|---|
|
#18+
grufosнет поддержки многобайтных кодировок (UTF8, ...), но это можно обойти через транслитерацию. эммм, как это нет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2015, 18:47 |
|
||
|
fias медленно ищет
|
|||
|---|---|---|---|
|
#18+
grufosнет поддержки многобайтных кодировок (UTF8, ...), но это можно обойти через транслитерацию. Что произойдет в плане использования индекса, если транслитерацию не применять? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2015, 07:54 |
|
||
|
fias медленно ищет
|
|||
|---|---|---|---|
|
#18+
grufosdtulyakov, для убыстрения подобных операций можно использовать работу с триграммами dtulyakov Код: sql 1. особенности: нет поддержки многобайтных кодировок (UTF8, ...), но это можно обойти через транслитерацию. Если у вас БД в однобайтной кодировке (CP1251, ...) то тогда и проблем нет 1. добавляем расширение для работы с триграммами CREATE EXTENSION pg_trgm; 2. создаем индекс на нужном поле CREATE INDEX addrobj_formalname_idx ON addrobj USING gist (formalname gist_trgm_ops); 3. теперь ищем select * from addrobj where formalname ~ 'содовая'; если же у вас многобайтная кодировка, то 2. создаем функциональный индекс CREATE INDEX addrobj_formalname_idx ON addrobj USING gist (russian2translit(formalname) gist_trgm_ops); где, russian2translit функция трансформации русского текста в транслит. 3. теперь ищем select * from addrobj where russian2translit(formalname) ~ russian2translit('содовая'); после этого тормоза связанные с поиском по паттерну вас покинут Большое спасибо поиск занимает около секунды ищет в UTF-8 кодировке нормально без транслита ЗЫ надо будет покурить работу с триграммами да и сам постгрес в целом ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2015, 08:14 |
|
||
|
fias медленно ищет
|
|||
|---|---|---|---|
|
#18+
Alexiusgrufosнет поддержки многобайтных кодировок (UTF8, ...), но это можно обойти через транслитерацию. эммм, как это нет? Да, с UTF8 поиском всё в порядке. Прощу прощения за ввод в заблуждение ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2015, 11:38 |
|
||
|
fias медленно ищет
|
|||
|---|---|---|---|
|
#18+
dtulyakovЗЫ надо будет покурить работу с триграммами да и сам постгрес в целом ссылка на RTFM http://www.postgresql.org/docs/9.4/static/pgtrgm.html ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2015, 11:44 |
|
||
|
|

start [/forum/topic.php?fid=53&msg=38918365&tid=1998087]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
178ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
87ms |
get tp. blocked users: |
2ms |
| others: | 234ms |
| total: | 546ms |

| 0 / 0 |
