MariaDB 서버는 우리가 재현할 수 있는 어떤 것보다도 10배 빠르게 작동합니다.아이디어 왜?
저렴한 공유 호스팅 사이트를 가지고 있습니다.
MariaDB 서버가 있는데, 많은 고객들이 이 서버를 공유하고 있을 것입니다.우리는 이것에 대해 꽤 건방진 질문을 하고 빠른 답변을 얻습니다.호스팅을 다른 곳으로 옮기고 싶지만 데이터베이스를 실행하는 속도가 턱없이 빠릅니다.
SSD, 12코어, 16기가 RAM을 탑재한 새로운 VPS 서버를 사용해 보았습니다.쿼리는 공유 호스팅의 DB보다 10배나 더 오래 걸립니다(코어 수가 증가해도 별 차이가 없습니다).MySQL과 MariaDB + 호스트도 광속, memcache 및 Redis를 설정했지만 도움이 되지 않았습니다.
테스트한 특정 쿼리의 경우 공유 서버의 실행에는 약 0.7초, 새 서버의 실행에는 약 8초가 소요됩니다.
인덱스가 있는 것을 확인했습니다(EXPLOY 쿼리는 양쪽에서 동일하게 표시됨). 쿼리에 대한 사소한 변경은 속도에 영향을 미치지 않으므로 전체 쿼리가 캐시되지 않을 수 있습니다.출력이 작기 때문에 처리속도가 느립니다.
저속 쿼리는 길고 범위가 넓지만 실제로는 ID가 varchar로 저장되는 행을 효율적으로 대조하려고 하지 않습니다.예:
SELECT post.ID
FROM post
LEFT JOIN meta
ON post.ID = meta.postID
AND meta.key = "ABC"
WHERE post.type = "XYZ"
AND meta.value = "123456";
느린 쿼리에 대한 설명에는 다음이 표시됩니다.
id, select_type, table, type, possible_keys, key, key_len, ref, rows, Extra
1, SIMPLE, _booking_all_day, ref, "post_id,meta_key", meta_key, 576, const, 71474, Using where; Using temporary; Using filesort
....
각 서버의 Show Variables를 여기에 붙여 보았습니다.https://pastebin.com/iW6WL3zC - 고속 공유 서버입니다.https://pastebin.com/kJGKHyqs - 새로운 저속 서버.
MySQL에 대한 경험은 충분하지만 DB 엔지니어는 아닙니다!MariaDB는 처음이라서 중요한 최적화가 있는지 잘 모르겠습니다.
하나의 분명한 답은 잘못된 SQL 코드를 다시 쓰는 것입니다.그럴게요, 하지만 그럴 시간이 생기기 전에 호스팅 장소를 옮겨야 할 것 같아요.이 질문은 같은 쿼리가 왜 이렇게 다른가/새로운 서버를 고속(또는 고속)으로 가동시키기 위한 권장사항에 대한 것입니다.감사해요.
Old,1.27 buffer_pool18..3zC: MariaDB 10.1.27 buffer_pool=18Gg
..yqs ", "MariaDB 10.1.37 buffer_pool=128Mm
innodb_buffer_pool_size
이치노I/O를 사용하다
각 머신의 RAM 용량buffer_pool은 사용 가능한 RAM의 약 70%여야 합니다.
한편, 같은 버전의 WP를 가지고 있습니까?
WP의 포스트메타 퍼포먼스 향상에 관한 힌트: http://mysql.rjweb.org/doc.php/index_cookbook_mysql#speeding_up_wp_postmeta 권장 인덱스 변경은 실제로 더 빠른 머신과 일치할 정도로 더 느린 머신에서 쿼리 속도를 높일 수 있습니다.
언급URL : https://stackoverflow.com/questions/53372851/mariadb-server-running-10-x-faster-than-anything-we-can-reproduce-ideas-why
'source' 카테고리의 다른 글
pip install --user와 함께 설치된 패키지를 제거하는 방법 (0) | 2022.10.13 |
---|---|
ddev에서 두 번째 데이터베이스를 만들고 로드하려면 어떻게 해야 합니까? (0) | 2022.10.03 |
PHP의 cURL을 사용하여 Tor 숨김 서비스에 연결하려면 어떻게 해야 합니까? (0) | 2022.10.03 |
getter를 사용하는 경우 (0) | 2022.10.03 |
일부 스크립트에서 닫는 PHP 태그 '?>가 생략되는 이유는 무엇입니까? (0) | 2022.10.03 |