source

MariaDB 서버는 우리가 재현할 수 있는 어떤 것보다도 10배 빠르게 작동합니다.아이디어 왜?

factcode 2022. 10. 3. 17:33
반응형

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

반응형