반응형
match()를 사용하여 ()에 대해 Mariadb 쿼리의 메모리가 부족합니다.
매우 큰 테이블(약 50GB)이 있지만 열이 거의 없습니다.
CREATE TABLE my_table (
id BIGINT(20) NOT NULL AUTO_INCREMENT,
id_sec BIGINT(20) NULL,
full_name VARCHAR(100) NULL DEFAULT NULL,
PRIMARY KEY (id),
FULLTEXT INDEX fts_full_name (full_name)
)
COLLATE='utf8_general_ci'
ENGINE=InnoDB
다음 쿼리를 실행할 때:
SELECT * FROM my_table WHERE MATCH(full_name) AGAINST('lastname middle first ' IN BOOLEAN MODE)
SELECT * FROM my_table WHERE MATCH(full_name) AGAINST('lastname middle first ')
SELECT * FROM my_table WHERE MATCH(full_name) AGAINST('lastname middle first ' IN BOOLEAN MODE) LIMIT 1000
SELECT * FROM my_table WHERE MATCH(full_name) AGAINST('lastname middle first ') LIMIT 1000
SELECT * FROM my_table WHERE MATCH(full_name) AGAINST('lastname middle first ' IN BOOLEAN MODE) LIMIT 100
SELECT * FROM my_table WHERE MATCH(full_name) AGAINST('lastname middle first ') LIMIT 100
가끔 다음 오류 메시지를 보냅니다.
SQL Error (128): Table handler out of memory
하지만 제가 실행할 때는 그런 일이 일어나지 않습니다.
SELECT * FROM my_table WHERE MATCH(full_name) AGAINST('+lastname +middle +first ' IN BOOLEAN MODE)
SELECT * FROM my_table WHERE MATCH(full_name) AGAINST('+lastname +middle +first ')
다음 값을 사용해 보았으나 개선되지 않았습니다.
--key-buffer-size=20M
--tmp-table-size=2G
--thread-pool-max-threads=10
--max-connections=100
--max-heap-table-size=2G
--innodb-buffer-pool-size=4G
무슨 일이 일어날지 아는 사람?아니면 어떻게 수정할 수 있습니까?
서버가 Windows 10(x64), 10.3.12-MariaDB(x64), 32GB RAM, core i7에서 실행 중입니다.
감사해요.
아래의 세 가지 변수에 대해 읽고 이들 변수를 사용하여 실험해 보십시오.
| innodb_ft_cache_size | 8000000 |
| innodb_ft_result_cache_limit | 2000000000 |
| innodb_ft_total_cache_size | 640000000 |
성공하지 못한 경우 bugs.mysql.com 에 버그 보고서를 제출합니다(그리고 버그 번호를 여기에 게시합니다).
innodb_buffer_pool_size를 메모리의 약 80%로 설정해야 합니다.
mysql 또는 mariadb에 사용할 수 있습니다.innodb는 mariadb 문서에서 innodb를 참조하십시오. https://mariadb.com/kb/en/innodb-system-variables/ #innodb_bul_pool_size
mysql 또는 mariadb 구성 파일 편집:
[mysqld]
innodb_buffer_pool_size=50G
mysql 서버 다시 시작
언급URL : https://stackoverflow.com/questions/55151872/mariadb-query-runs-out-of-memory-with-use-of-match-against
반응형
'programing' 카테고리의 다른 글
spring-boot에서 업데이트를 위해 select를 사용하는 방법 (0) | 2023.09.05 |
---|---|
Android - 사용자 지정 글꼴 사용 (0) | 2023.09.05 |
Windows 응용 프로그램에서 보이는 디스플레이로 stdout을 리디렉션하려면 어떻게 해야 합니까? (0) | 2023.08.26 |
텍스트 보기에서 글꼴을 변경하는 방법은 무엇입니까? (0) | 2023.08.26 |
MySQL: 이번 주 기록을 어떻게 선택합니까? (0) | 2023.08.26 |