해결해야하는 데이터에 약간의 문제가 있습니다. 전자 메일의 일반 텍스트가 longtext 열에 저장되는 테이블이 있습니다. 내가 프레임 워크에서 개발하기 시작하기 전에 이런 느낌이었습니다. 이미 백만 개의 행에 큰 이메일이 저장되어 있습니다.MySQL : 긴 텍스트 열을 여러 텍스트 열로 나눕니다.
해당 필드에서 텍스트를 검색 할 수 있어야하지만 결과가 반환되기까지 시간이 오래 걸립니다. 이것은 수백 명의 사용자가 시스템을 사용하고 전자 메일 컨텐츠를 검색 할 수 있어야하기 때문에 이상적이지 않습니다.
나는 다음과 같은 간단한 SQL 문을 시도했지만이 기록을 찾기 위해 너무 오래 걸립니다 :
select id from emails where description like "%hello world%";
전체, 텍스트 인덱싱은 CHAR, VARCHAR 및 텍스트 필드에 MySQL의 문서를 사용할 수 있습니다 따르면.
누군가 긴 텍스트 열을 검색하는 효율적인 방법을 제안 할 수 있습니까?
또는
테이블 및 전체 텍스트 인덱싱에 대한 여러 텍스트 컬럼에 LONGTEXT 필드의 내용을 분할을 실행하는 데 사용할 수있는 SQL 방법/명령이 있습니까?
이미 테이블에 전체 텍스트 색인 추가를 시도했지만 실패합니다. 새로 생성 된 테이블에 대한 또 다른 시도의 출력 결과는 다음과 같습니다. 'create table sample (description longtext);'- '쿼리 OK, 0 rows affected (0.20 sec)'. 'alter table sample add fullidext index descidx (description);'- 'ERROR 1214 (HY000) : 사용 된 테이블 타입이 FULLTEXT 인덱스를 지원하지 않습니다. 사용되는 엔진은 InnoDB입니다. –
내 문제를 발견했다고 생각합니다. 나는 현재 mysql 5.5를 사용하고 있고 5.6을 사용하고 있지 않다. 전체 텍스트 인덱싱은 mysql 5.6부터 InnoDB에만 추가된다. –
예, 운좋게도 업그레이드가 간편합니다. – e4c5