이 플러그인을 어떻게 사용하나요?
이 플러그인을 설치하고 활성화한 후 도구 메뉴에서 색인 MySQL 도구를 방문하세요. 여기에서 지금 키 추가 버튼을 누르면 됩니다. 테이블이 큰 경우, 시간 초과를 방지하기 위해 WP-CLI와 함께 사용하세요. 자세한 내용은 WP-CLI 섹션을 참조하세요.
내 사이트에 어떤 영향을 미치나요?
이 플러그인은 선택한 테이블에 고성능 키를 추가하여 MySQL 데이터베이스의 작동 효율을 높여줍니다. 요청 시 사이트의 MySQL 데이터베이스 사용량을 모니터링하여 어떤 데이터베이스 작업이 가장 느린지 감지합니다. 사용자, 글, 페이지 및/또는 상품이 많은 대규모 사이트에 특히 유용합니다.
필요한 경우 워드프레스의 기본 키를 복원하는 데 사용할 수 있습니다.
이게 무슨 일이에요?
워드프레스는 사이트를 훌륭하게 만드는 모든 요소를 어디에 저장할까요? 페이지, 글, 상품, 미디어, 사용자, 사용자 정의 필드, 메타데이터, 그리고 모든 귀중한 콘텐츠는 어디에 있을까요? 이 모든 데이터는 MySQL 관계형 데이터베이스 관리 시스템에 있습니다. (많은 호스팅 제공업체와 서버는 MySQL 소프트웨어의 MariaDB fork를 사용하며, MySQL 자체와 정확히 동일한 방식으로 작동합니다.)
사이트가 커질수록 MySQL 테이블도 커집니다. 테이블이 너무 크면 페이지 로딩 속도가 느려지고, 사용자들이 불편을 겪게 되며, 심지어 검색 엔진 순위에도 악영향을 줄 수 있습니다. 게다가 대량 가져오기는 엄청난 시간을 소모할 수 있습니다. 이 문제에 어떻게 대처할 수 있을까요?
데이터베이스 클리너 플러그인을 설치하고 사용하면 오래된 원치 않는 데이터를 제거하고 테이블을 재정비할 수 있습니다. 이렇게 하면 테이블 크기가 작아지고 따라서 속도가 빨라집니다. 이는 바람직하고 필요한 작업입니다. 하지만 이 플러그인의 역할은 아닙니다. 호스팅 제공업체에서 지원하는 경우, Persistent Object Cache 플러그인을 설치하고 사용하여 데이터베이스 트래픽을 줄일 수 있습니다. 이 플러그인의 역할도 아닙니다.
이 플러그인은 워드프레스가 필요한 정보를 더 쉽게 찾을 수 있도록 MySQL 테이블에 데이터베이스 키(색인라고도 함)를 추가합니다. 모든 관계형 데이터베이스 관리 시스템은 정보를 장기 테이블에 저장합니다. 예를 들어, 워드프레스는 글과 기타 콘텐츠를 wp_posts라는 테이블에 저장하고, 사용자 지정 글 필드를 wp_postmeta라는 다른 테이블에 저장합니다. 성공적인 사이트는 수천 개의 글과 수십만 개의 사용자 지정 글 필드를 가질 수 있습니다. MySQL은 두 가지 역할을 합니다.
- 모든 데이터를 체계적으로 정리.
- 필요한 데이터를 빠르게 찾기.
MySQL은 두 번째 작업을 위해 데이터베이스 키를 사용합니다. 각 테이블에는 하나 이상의 키가 있습니다. 예를 들어, wp_posts 작성자를 알고 있을 때 글을 빠르게 찾을 수 있는 키를 가지고 있습니다. post_author 키가 없다면 MySQL은 모든 글을 스캔하여 원하는 작성자와 일치하는 글을 찾아야 합니다. 사용자들은 이것이 얼마나 느린지 알고 있습니다. 하지만 이 키를 사용하면 MySQL은 일치하는 글로 바로 이동할 수 있습니다.
사용자 몇 명과 글 수십 개가 있는 새로운 워드프레스 사이트에서는 키가 그다지 중요하지 않습니다. 하지만 사이트가 성장함에 따라 키가 매우 중요해지기 시작합니다. 데이터베이스 관리 시스템은 테이블이 커짐에 따라 키를 업데이트, 조정, 그리고 미세 조정하도록 설계되었습니다. 즉, 기본 테이블의 내용을 변경하지 않고 키가 계속 업데이트되도록 설계되었습니다. 대규모 데이터베이스를 사용하는 조직에서는 키를 추가, 삭제 또는 변경해도 기본 데이터는 변경되지 않습니다. 많은 데이터 센터에서는 이러한 작업이 일상적인 유지 관리 작업입니다. 키 변경으로 인해 데이터베이스 데이터가 손실된다면 MySQL과 MariaDB 개발자들은 저뿐만 아니라 많은 헤비 유저들의 불만을 들을 것입니다. (물론 워드프레스 인스턴스는 백업해야 합니다.)
더 나은 키를 사용하면 워드프레스 코드를 변경하지 않고도 더 빠르게 실행할 수 있습니다. 대규모 사이트 경험에 따르면 MySQL 속도 저하의 상당수는 더 나은 키를 통해 개선될 수 있습니다. 코드는 시이고, 데이터는 보물이며, 데이터베이스 키는 코드와 데이터가 원활하게 작동하도록 하는 윤활유와 같습니다.
플러그인은 어떤 테이블에 키를 추가하나요?
이 플러그인은 워드프레스와 우커머스 테이블에 키를 추가하고 업데이트합니다.
- wp_comments
- wp_commentmeta
- wp_posts
- wp_postmeta
- wp_termmeta
- wp_users
- wp_usermeta
- wp_options
- wp_wc_orders_meta
- wp_woocommerce_order_itemmeta
- wp_automatewoo_log_meta
이 플러그인을 한 번만 실행하면 그 효과를 볼 수 있습니다.
데이터베이스 작업을 어떻게 모니터링할 수 있나요?
대시보드의 도구 메뉴에 있는 MySQL 색인 페이지에 “데이터베이스 작업 모니터링” 탭이 있습니다. 이 탭을 사용하여 원하는 시간(분) 동안 모니터링을 요청하세요.
다음을 모니터링 할 수 있습니다:
- 사이트(사용자에게 표시되는 페이지) 또는 대시보드, 또는 둘 다입니다.
- 모든 페이지 뷰 또는 무작위 표본. (무작위 표본은 모니터링 오버헤드를 줄이기 위해 매우 바쁜 사이트에서 유용합니다.)
모니터링 정보를 수집한 후에는 캡처된 쿼리를 확인하고 소요 시간별로 정렬할 수 있습니다. 또는 모니터링 정보를 파일에 저장하여 데이터베이스 운영에 정통한 사람에게 보여줄 수도 있습니다. 또는 플러그인 서버에 모니터링 정보를 업로드하여 작성자가 확인할 수 있도록 할 수도 있습니다.
사이트 사용량이 많은 시간대에 5분 간격으로 모니터링하는 것이 좋습니다. 모니터링을 완료하면 어떤 데이터베이스 작업이 가장 큰 속도 저하를 유발하는지 확인할 수 있습니다.
저장된 모니터를 플러그인 서버에 업로드해주세요. 이를 통해 저희는 여러분의 경험을 바탕으로 지속적으로 개선해 나갈 것입니다. 모니터 탭에서 ‘업로드’ 버튼을 눌러주세요.
WP-CLI 명령줄 작업
이 플러그인은 WP-CLI를 지원합니다. 테이블이 큰 경우 고성능 키를 추가하는 가장 좋은 방법은 시간 초과가 발생하지 않는 것입니다.
자세한 내용은 wp help index-mysql 명령을 사용하세요. 몇 가지 예를 들면 다음과 같습니다.
wp index-mysql status고성능 키의 현재 상태를 보여줍니다.wp index-mysql enable --all해당 키가 없는 모든 테이블에 고성능 키를 추가합니다.wp index-mysql enable wp_postmeta고성능 키를 postmeta 테이블에 추가합니다.wp index-mysql disable --all해당 키가 있는 모든 테이블에서 고성능 키를 제거하고 워드프레스의 기본 키를 복원합니다.wp index-mysql enable --all --dryrun모든 테이블에 고성능 키를 추가하는 데 필요한 SQL 문을 작성하지만, 실행하지는 않습니다.wp index-mysql enable --all --dryrun | wp db querySQL 명령문을 작성하고 이를 wp db로 파이프하여 실행합니다.
참고: –dryrun 출력 명령문을 나중에 실행하기 위해 저장하지 마세요. 플러그인은 테이블의 현재 상태에 맞춰 출력 명령을 생성합니다.
왜 이 플러그인을 사용해야 하나요?
이유는 세 가지(아마도 네 가지)입니다.
- 탄소발자국을 줄이기 위해.
- 탄소발자국을 줄이기 위해.
- 탄소발자국을 줄이기 위해.
- 사람들의 시간을 절약하기 위해서.
진지하게 말해서, 빠른 웹사이트 기술로 절약된 마이크로와트시의 전기는 빠르게 늘어나고 있으며, 특히 워드프레스의 글로벌 규모에서는 더욱 그렇습니다.
워드프레스 사이트를 더욱 효율적으로 만드는 방법에 대해 자세히 알아보려면 어떻게 해야 하나요?
사이트의 데이터베이스 효율성 향상에 도움이 되는 다양한 플러그인을 제공합니다. 자세한 내용은 여기에서 확인하세요.
크레딧
- 관리자 페이지 프레임워크를 담당한 Michael Uno.
- LiteSQLParser를 담당한 Marco Cesarato.
- Datatables.net을 담당한 llan Jardine.
- 우커머스 테이블을 제안해 주신 Leho Kraav와 Sebastian Sommer에게 감사드립니다.
- 조언을 구한, 그리고 대규모 설비를 테스트한 Japreet Sethi
- 모든 것에 대해 Rick James
- Jetbrains의 IDE 도구, 특히 PhpStorm은 정말 훌륭합니다. Jetbrains 도구 없이 방대한 코드 베이스를 탐색하는 건 상상하기 어렵습니다.
