«pattern-matching» 태그된 질문


3
LIKE는 어떻게 구현됩니까?
현재 데이터베이스 시스템 (예 : MySQL 또는 Postgres)에서 LIKE 연산자가 어떻게 구현되는지 설명 할 수 있습니까? 또는 그것을 설명하는 참고 문헌을 알려주십시오. 순진한 접근 방식은 각 레코드를 검사하여 관심있는 분야에서 정규 표현식 또는 부분 문자열 일치를 실행하는 것이지만 이러한 시스템이 더 똑똑한 일이라고 생각합니다.

2
식에서 집계 LIKE 쿼리 속도를 높이기 위해 인덱스를 만드는 방법은 무엇입니까?
제목에 잘못된 질문이있을 수 있습니다. 사실은 다음과 같습니다. Django 기반 사이트의 관리 인터페이스에서 고객 조회를 수행 할 때 고객 서비스 담당자가 응답 시간이 느리다고 불평했습니다. 우리는 Postgres 8.4.6을 사용하고 있습니다. 느린 쿼리 로깅을 시작하고이 범인을 발견했습니다. SELECT COUNT(*) FROM "auth_user" WHERE UPPER("auth_user"."email"::text) LIKE UPPER(E'%deyk%') 이 쿼리는 실행하는 데 32 초 …

1
텍스트 열에서 text_pattern_ops를 색인하는 이유는 무엇입니까?
오늘 7 주 동안 7 개의 데이터베이스가 운영자 별 인덱스를 소개했습니다. 이전 쿼리를 작성하여 패턴과 일치하는 문자열을 색인화 할 수 있습니다. text_pattern_ops값이 소문자로 색인되는 연산자 클래스 색인 . CREATE INDEX moves_title_pattern ON movies ( (lower(title) text_pattern_ops); text_pattern_ops제목은 텍스트 유형이므로를 사용했습니다 . varchars, chars 또는 names를 색인화해야하는 경우 관련 ops를 사용하십시오.varchar_pattern_ops …

2
검색 문자열이 길어질수록 트라이 그램 검색이 훨씬 느려집니다.
Postgres 9.1 데이터베이스 table1에는 ~ 1.5M 개의 행과 열 label(이 질문을 위해 단순화 된 이름) 이있는 테이블 이 있습니다. 기능적인 trigram-index가 있습니다 lower(unaccent(label))( 색인에서 unaccent()사용할 수 있도록 불변이되었습니다). 다음 쿼리는 매우 빠릅니다. SELECT count(*) FROM table1 WHERE (lower(unaccent(label)) like lower(unaccent('%someword%'))); count ------- 1 (1 row) Time: 394,295 ms 그러나 다음 …

1
GIN 인덱스 TSVECTOR 열에서 부분 일치를 가져옵니다.
이것을 쿼리하여 결과를 얻고 싶습니다. SELECT * FROM ( SELECT id, subject FROM mailboxes WHERE tsv @@ plainto_tsquery('avail') ) AS t1 ORDER by id DESC; 이것은 작동하고 tsv포함 하여 행을 반환합니다 Available. 그러나 avai( 사용 lable하지 않으면) 아무것도 찾을 수 없습니다. 모든 쿼리가 사전에 있어야합니까? 그런 편지 만 쿼리 할 …

2
가장 긴 접두사를 찾기위한 알고리즘
두 개의 테이블이 있습니다. 첫 번째는 접두사가있는 테이블입니다. code name price 343 ek1 10 3435 nt 4 3432 ek2 2 두 번째는 전화 번호가있는 통화 기록입니다 number time 834353212 10 834321242 20 834312345 30 각 레코드의 접두사에서 가장 긴 접두사를 찾는 스크립트를 작성 하고이 모든 데이터를 다음과 같이 세 번째 …

5
“[]”와일드 카드를 사용하여 PATINDEX와] (닫는 대괄호) 일치
T-SQL † 에서 사용자 지정 JSON 파서를 작성 중 입니다. 파서의 목적을 PATINDEX위해 토큰 목록에서 토큰의 위치를 ​​계산하는 함수를 사용하고 있습니다. 필자의 경우 토큰은 모두 단일 문자이며 다음을 포함합니다. {} [] :, 일반적으로 주어진 여러 문자 중 첫 번째 위치를 찾아야 할 때 다음 PATINDEX과 같은 기능을 사용합니다 . PATINDEX('%[abc]%', …
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.