|
Помогите с поиском по 40млн строк в один столбец.
|
|||
---|---|---|---|
#18+
mayton А сорян. Все нормально. Нужна какая-то прагма. Пишут что LIKE регистронезависимый, а индексы регистрозависимые, вот и не может использовать индекс без доп.настроек. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2021, 11:47 |
|
Помогите с поиском по 40млн строк в один столбец.
|
|||
---|---|---|---|
#18+
FTS5 индекс по 700 млн паролей у меня так и не построился. Уже 30 минут работает. И сегмент данных - вырос до 50 Гб. Чуть позже я попробую детализировать. Код: sql 1. 2. 3. 4. 5.
Возможно такой примитивный подход неприменим к текстовому поиску. Нужно изучать опции FTS5 и понимать что он кладет в индекс. Слова? Биграммы? Триграммы? Токенизирует и стеммингует английские слова? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2021, 12:28 |
|
Помогите с поиском по 40млн строк в один столбец.
|
|||
---|---|---|---|
#18+
mayton FTS5 индекс по 700 млн паролей Боюсь в данном случае FTS будет бесполезен, т.к. пароль это одно слово, а FTS ищет не подстроку, а слово внутри строки, т.е. слова должны быть разделены. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2021, 12:41 |
|
Помогите с поиском по 40млн строк в один столбец.
|
|||
---|---|---|---|
#18+
Согласен. Если вернуться к кейсу автора. Код: sql 1.
Нам нужна такая структура которая толерантна к поиску подстрок. Триграммы - квадраграммы и так далее. (я в топике не обсуждаю сейчас полезность этого кейса. Я думаю он может быть даже бесполезен. Но это в некотором роде - челледж) Вот здесь пишут про экспериментальную поддержку trigram https://www.sqlite.org/fts5.html 4.3.4. The Experimental Trigram Tokenizer The experimental trigram tokenizer extends FTS5 to support substring matching in general, instead of the usual token matching. When using the trigram tokenizer, a query or phrase token may match any sequence of characters within a row, not just a complete token. For example: Код: sql 1. 2. 3. 4. 5. 6. 7.
Надо попробовать. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2021, 12:46 |
|
Помогите с поиском по 40млн строк в один столбец.
|
|||
---|---|---|---|
#18+
Хм... Код: 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. 26.
... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2021, 13:29 |
|
Помогите с поиском по 40млн строк в один столбец.
|
|||
---|---|---|---|
#18+
mayton Код: sql 1. 2.
Похоже недавно добавили, качни свежий , в нем работает Код: sql 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2021, 15:34 |
|
Помогите с поиском по 40млн строк в один столбец.
|
|||
---|---|---|---|
#18+
Да я уже понял что у меня бомж-версия. Щас я смотрю этот-же класс индекса в Postgresql. Там - какая-то фигня с установкой extensions. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2021, 16:07 |
|
Помогите с поиском по 40млн строк в один столбец.
|
|||
---|---|---|---|
#18+
Поставил новую версию SQLite. Еще строит вторую таблицу. Минут 30. Вообще складывается впечатление что триграм-индекс еще более прожорливый чем BTree. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Еще работает. Статистику по сегментам я еще не смотрел. Но внешне оригинальный источник данных (csv) был 8Гб. А текущий размер базы - уже 27Г. И эта виртуальная таблица - интересная штука. Это как-бы функция имеющая интерфейс таблицы которая имеет свой набор сегментов данных. И запросы к ней выглядят не как запросы а как вызовы функций. Я думаю что эти VT - это сильная сторона SQLite. Позволяют пользователям создавать свои собственные специфичные структуры данных. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2021, 17:58 |
|
Помогите с поиском по 40млн строк в один столбец.
|
|||
---|---|---|---|
#18+
ShSerge Я так понимаю, что сортировка по умолчанию - это сортировка по первичному ключу. У всякого запроса есть план доступа и задача СУБД - оптимизация этого плана. Если оптимальный план предусматривает доступ по индексу (у первичного ключа индекс обязательно будет) - будет доступ по индексу. Если оптимальный план предусматривает извлечение данных со страниц базы в их физическом порядке - будет совсем по другому. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2021, 18:48 |
|
Помогите с поиском по 40млн строк в один столбец.
|
|||
---|---|---|---|
#18+
ShSerge Я так понимаю, что сортировка по умолчанию - это... В SQL НЕТ никакой "сортировки по умолчанию". Если нет ORDER BY порядок возвращаемых данных не гарантируется. Сейчас может так, через пару лет (в новой версии) по другому. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2021, 19:53 |
|
Помогите с поиском по 40млн строк в один столбец.
|
|||
---|---|---|---|
#18+
Basil A. Sidorov ShSerge Я так понимаю, что сортировка по умолчанию - это сортировка по первичному ключу. У всякого запроса есть план доступа и задача СУБД - оптимизация этого плана. Если оптимальный план предусматривает доступ по индексу (у первичного ключа индекс обязательно будет) - будет доступ по индексу. Если оптимальный план предусматривает извлечение данных со страниц базы в их физическом порядке - будет совсем по другому. Правильно и неправильно. Давай не будем уходить от обсуждения конкретного запроса с которого все началось mayton Код: php 1.
Повторюсь: с точки зрения теории РСУБД написан неправильный запрос. Если очень надо - давай перечитаем Кодда, он разъясняет что в теории РСУБД нет порядка следования записей, т.е. без ORDER BY данный запрос неоднозначен. UB как сказали бы сишники. По-хорошему такой запрос должен вызывать ошибку, но т.к. такое никто не пишет, на генерацию ошибок не заморачиваются. mayton обосновал смысл этого запроса 22362030 , полностью согласен с ним что для оценки времени отклика такой запрос идеально подходит. Но в реальности есть какое-то физическое хранение, как следствие есть какая-то первая запись, которая стабильно выбирается первой при запросе Код: sql 1.
Как заметил ShSerge это будет запись с наименьшим primary key. Но нет гарантий что всегда будет так. Например в MSSQL автоматом для primary key создается кластерный индекс, т.е. как такового индекса нет, а записи физически упорядочиваются в порядке возрастания ключа, но никто не запрещает отменить кластерный индекс для primary key и сделать его по другому полю, просто оно так надо в 99.99% случаев. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2021, 20:50 |
|
Помогите с поиском по 40млн строк в один столбец.
|
|||
---|---|---|---|
#18+
1. Если я правильно помню, в SqlLite с Primary Key все не так просто. Там еще внутренний ключ есть. 2. Но даже в этом случае, без order by порядок опять таки будет зависит от кучи случайностей и самого запроса. Group By, Distinct и 100500 других ключевых слов на любые Primary Key'и и порядки положат наноболт. 3. Ошибки не обязаны выявлять ошибки логики. А рапортуют только о синтаксических ошибках. Limit без Order, это просто указание остановится после 1-ой найденной записи. За смыслом и логикой должен смотреть программист. Возможно, программист хотел этим запросом не данные получить, а просто проверить наличие хоть одной строки в таблице... кто же его знает... Но разумеется, если Вы пользуетесь запросами которые возвращают "первое попавшиеся" ( C ), то сами себе злобные буратино. В общем-то, в Limit (для пагинации) без Order особой беды и нет. Т.к. система (в основном) детерминирована и в большинстве (не всегда) случаев повторные вызовы одинакового запроса выдадут те же данные. В основном и не всегда - т.к. в случае "серьезных баз" и параллельного выполнения запросов, порядок будет зависит от множества случайных (временных) факторов и даже два последовательных вызова могут дать данные в совершенно разном порядке afaik. IMHO ... |
|||
:
Нравится:
Не нравится:
|
|||
21.08.2021, 09:13 |
|
Помогите с поиском по 40млн строк в один столбец.
|
|||
---|---|---|---|
#18+
Dima T Если очень надо - давай перечитаем Кодда, он разъясняет что в теории РСУБД нет порядка следования записей, т.е. без ORDER BY данный запрос неоднозначен. Реляционная алгебра определяет некоторый набор правил и вообще никак не касается семантики кортежей строк данных. Семантика (целиком и полностью) определяется автором конкретного приложения. Будь то РСУБД, которая реализует реляционную алгебру или приложение, которое манипулирует данными, доступ к которым обеспечивает эта самая РСУБД.UB как сказали бы сишники."Когда в руках молоток, то всё вокруг видится гвоздями". Что-то не замечал я, чтобы комитет исключал из стандарта все случаи UB, а разработчики компиляторов выдавали бы ошибки для кода с неопределённым поведением. Как-то наоборот - эти мерзкие и отвратительные люди используют UB для всяческих оптимизаций. И далеко не всегда эти оптимизации совпадают с ожиданиями скромного прикладного программиста.По-хорошему такой запрос должен вызывать ошибкуА давайте вы не будете обобщать необобщаемое? А то дай вам волю и в борьбе за мир во всём мире вы не оставите камня на камне. Если мне требуется десять произвольных записей, а для обеспечения "вашего детерминизма" придётся отсортировать миллиардную таблицу - "Я буду крайне разочарована. Крайне." (произносится голосом Аллы Демидовой).Как заметил ShSergeПочитайте, уже, хоть что-нибудь о методах доступа к данным. Начать можете всё с той же реляционной алгебры г-на Кодда, которая чётко и однозначно формулирует единственное назначение первичного ключа: однозначная идентификация каждой строки кортежа (данных). В этом определении нет ни одного слова об упорядоченности - только о сравнение на (не)равенство. И хотя эффективная реализация первичных и предполагает использование того или иного варианта "монотонных счётчиков" это - именно что деталь реализации. Опираться на которую, вообще-то, нельзя. Точно так же, как нельзя опираться на устойчивость порядка следования строк кортежа. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.08.2021, 10:19 |
|
Помогите с поиском по 40млн строк в один столбец.
|
|||
---|---|---|---|
#18+
Basil A. Sidorov ...И хотя эффективная реализация первичных и предполагает использование того или иного варианта "монотонных счётчиков" это... AFAIK в многопроцессорных/кластерных системах "монотонный счетчик" одна из главных проблем, а не как не эффективная реализация. Был очень сильно удивлен, когда увидел реализацию pk на случайных числах. Почитал в I-net'е, был удивлен еще сильнее, т.к. это бест практис для мейнфреймов. Ну и AFAIK в кластерах/rac'ах основные коллизии и проблемы как раз из-за монотонных ключей/индексов. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.08.2021, 10:55 |
|
Помогите с поиском по 40млн строк в один столбец.
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev Basil A. Sidorov ...И хотя эффективная реализация первичных и предполагает использование того или иного варианта "монотонных счётчиков" это... AFAIK в многопроцессорных/кластерных системах "монотонный счетчик" одна из главных проблем, а не как не эффективная реализация. Был очень сильно удивлен, когда увидел реализацию pk на случайных числах. Почитал в I-net'е, был удивлен еще сильнее, т.к. это бест практис для мейнфреймов. Ну и AFAIK в кластерах/rac'ах основные коллизии и проблемы как раз из-за монотонных ключей/индексов. Возможно имеется в виду UUID. Но для него существует несколько схем кодирования. Есть такие которые включают МАК-адрес сетевого интерфейса (48 бит) и текущий timestamp. С разной точностью и знаковостью. И еще остается пространство для добавления шумовой случайной информации. Такая схема кодирования достаточна что-б хотя-бы на практическом уровне закрыть вопрос коллизий. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.08.2021, 14:49 |
|
Помогите с поиском по 40млн строк в один столбец.
|
|||
---|---|---|---|
#18+
mayton, А я открою контору, которая каждому гуиду будет выдавать сертификат уникальности. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.08.2021, 15:53 |
|
Помогите с поиском по 40млн строк в один столбец.
|
|||
---|---|---|---|
#18+
Я думаю что торговля цифровыми подписями, гарантиями и круговым поручительством - это бизнес будущего. И без централизации. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.08.2021, 17:16 |
|
Помогите с поиском по 40млн строк в один столбец.
|
|||
---|---|---|---|
#18+
mayton Я думаю что торговля цифровыми подписями, гарантиями и круговым поручительством - это бизнес будущего. И без централизации. Про это тут оффтоп, но отдельной темой можно обсудить. ИМХО тут все очень противоречиво. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.08.2021, 20:58 |
|
Помогите с поиском по 40млн строк в один столбец.
|
|||
---|---|---|---|
#18+
mayton ...Возможно имеется в виду UUID... Нет. Тупо рандом. Используется в Oracle Utilitites CC&B ... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2021, 00:05 |
|
Помогите с поиском по 40млн строк в один столбец.
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev AFAIK в многопроцессорных/кластерных системах "монотонный счетчик" одна из главных проблем А так - выдали каждому потоку "достаточно большой" диапазон и резко сократили конкуренцию за общий счётчик. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2021, 08:50 |
|
Помогите с поиском по 40млн строк в один столбец.
|
|||
---|---|---|---|
#18+
mayton И без централизации. Как вы конфликты-то собрались разрешать? И не конфликты протокола, а вполне материальные тяжбы? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2021, 08:52 |
|
Помогите с поиском по 40млн строк в один столбец.
|
|||
---|---|---|---|
#18+
Basil A. Sidorov mayton И без централизации. Как вы конфликты-то собрались разрешать? И не конфликты протокола, а вполне материальные тяжбы? Несколько лет назад некто Филипп Циммерман создавал концепцию такого протокола. Я читал об этом где - то в конце 90х. Я тогда учился в универе. И меня очень впечатлило. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2021, 12:54 |
|
Помогите с поиском по 40млн строк в один столбец.
|
|||
---|---|---|---|
#18+
Да протоколами-то всё в порядке. В реальной жизни вы как собрались конфликты решать? С чем, грубо говоря, в суд пойдёте? С хэшами и мнениями приглашённых экспертов? Правда? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.08.2021, 05:51 |
|
Помогите с поиском по 40млн строк в один столбец.
|
|||
---|---|---|---|
#18+
А разве мы ходим в суд если прилетает дырявое обновление от Microsoft или Google? Ходить в суды - это вообще не моя ветка обсуждений. Я просто акцентировал на том что свободные сообщества экспертов могли-бы давать свою оценку качества исходного кода для тех продуктов которыми мы пользуемся каждый день. Остался пустяк - дать нам механизм этой оценки. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.08.2021, 10:35 |
|
Помогите с поиском по 40млн строк в один столбец.
|
|||
---|---|---|---|
#18+
mayton А разве мы ходим в суд если прилетает дырявое обновление от Microsoft или Google? А вот когда речь про деньги - очень даже ходят. Хоть канал Царьград против Googel, хоть MS против Amazon (или наоборот). P.S. Странный инфантилизм: "Я тут фигню про деньги делаю, но как этим пользоваться в реальной жизни - мне вообще пофигу". Сообщества, блин ... Сунули тут недавно сообщество CentOS в анус и где оно теперь, это сообщество? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.08.2021, 11:30 |
|
|
start [/forum/topic.php?fid=16&msg=40092570&tid=1339638]: |
0ms |
get settings: |
12ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
37ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
60ms |
get tp. blocked users: |
1ms |
others: | 244ms |
total: | 390ms |
0 / 0 |