URL을 url
필드에 저장하는 MySQL MyISAM 테이블이 있습니다. URL은 항상 체계, 하위 도메인 및 호스트입니다 (예 : http://www.site.com 또는 https://site2.edu).MySQL의 트리거를 사용하여 URL 필드를 분해하고 MyISAM 테이블에 그 부품을 저장하십시오.
색인을 생성하고 검색 할 수 있도록 도메인, 하위 도메인 및 스키마를 자체 필드에 저장해야합니다. 내 시스템이 수백만 행에 대해 LIKE 쿼리를 수행하는 것은 너무 느립니다.
- 도메인 : site.com, site2.com
- 하위 도메인 : www가 ','
- 계획 : HTTP, HTTPS
내가 만들려면 어떻게해야합니까 MySQL의 트리거가이 작업을 수행하려면? URL 필드에서 Domain, Subdomain 및 Scheme을 업데이트 할 때마다 추출하고 각 필드에 저장해야합니다 (예 : domain
, subdomain
, scheme
).이 필드는 MySQL 트리거에 의해서만 기록됩니다.
URL 구문 분석은 흔하지 않은 경우가 많으므로 대부분 이런 식으로 트리거를 설정하는 것에 관심이 있습니다. 내 애플리케이션에서 URL 구문 분석의 품질을 조정하고 상쇄 할 수 있습니다.
우선 "* domain *"은 잘 정의되어 있지 않습니다. "도메인"이 끝나는 위치와 하위 도메인/호스트가 시작되는 위치를 결정하는 쉬운 방법은 없습니다 (문제의 도메인 운영자가 의미 론적으로 구분하고 다른 곳과 구별 할 수 없기 때문에) ... 가장 일반적인 접근 방법은 공개 도메인 등록이 이루어진 수준을 결정하기 위해 Mozilla의 [Public Suffix List] (https://wiki.mozilla.org/Public_Suffix_List)를 사용하는 것입니다. 그 아래에 개인 호스트/하위 도메인이 있다고 가정합니다. 그러나 그것은 간단하지 않습니다. – eggyal
왜 index 태그입니까? –
Amazon의 RDS를 사용하는 경우 트리거 설정은 매우 복잡합니다 (http://stackoverflow.com/questions/8919907/can-i-create-trigger-in-an-rds-db). 코드에이 동작을 넣는 것이 더 쉬울 수 있습니다. –