WordPress 설치의 wp_options 테이블에서 과도 현상을 제거 할 수 있습니까?
최근에 내 wp_options
테이블이 약간 큰 것 같습니다. 1161 개의 행을 포함하며 크기는 약 2.1MB입니다.
Clean Options를 설치했습니다 . 2010 년에 플러그인에서 개발이 중단 된 것처럼 보이지만 여전히 작동합니다.
이제 잠재적으로 고아 항목의 긴 목록이 있습니다. 이를 분류하고 제거 할 항목과 보관할 항목을 쉽게 파악할 수있는 방법이 있습니까? 또한 이것이 웹 사이트의 성능 문제를 유발할 수 있습니까?
읽어 주셔서 감사합니다. 어떤 아이디어라도 환영합니다!
업데이트 : Clean Options 플러그인은 목록에 몇 가지 일시적인 파일을 반환하여 wp_options
테이블 에 수백 개의 일시적인 파일이 있음을 알게되었습니다 . 다음과 같은 전체 무리가 있습니다.
_site_transient_browser_5728a0f1503de54634b3716638...
_site_transient_timeout_browser_03df11ec4fda7630a5...
_transient_feed_83dcaee0f69f63186d51bf9a4...
_transient_plugin_slugs
_transient_timeout_feed_83dcaee0f69f63186d51bf9a4b...
등등. 내가 말했듯이, 이와 같이 보이는 수백 개의 행이 있습니다. 그냥 버리는 것이 안전합니까?
감사
안전하게 버릴 수 있습니다. Wordpress 및 일부 플러그인은 필요에 따라 과도 신호를 다시 생성합니다. 과도 상태는 복잡한 쿼리에서 저장된 값과 비슷합니다. 결과는 임시로 저장되므로 시스템이 공통 쿼리를 반복해서 수행 할 필요가 없으며 대신 존재하고 만료되지 않은 경우 임시로만 찾습니다. 물론, 뭔가 잘못되지 않도록 변경하기 전에 데이터베이스를 백업하십시오!
모든 것을 백업 한 후 다음과 같은 mysql 문을 실행할 수 있습니다.
DELETE FROM `wp_options` WHERE `option_name` LIKE ('%\_transient\_%')
[ 편집 : 주석 제안 후 이스케이프 문자로 수정 된 문]
과도 상태는 다시 생성 될 때 삭제할 수 있습니다. 일부 플러그인의 실패 상황이나 설계 문제로 인해 만료 된 과도 상태가 누적 될 수 있습니다. 이에 대처하는 한 가지 방법은 만료 된 과도 전류를 제거하면서 현재의 과도 전류가 기능을 수행하도록하는 것입니다. 며칠 동안 만료 된 과도 상태 만 제거하면 어떤 플러그인이 부실 과도 상태를 유발하는지 모니터링하고 문제를 해결하거나 문제를보고하기위한 조치를 취할 수 있습니다.
다음은 데이터베이스에서 wp * option 테이블을 찾고 1 주일 이상 오래된 5 개의 가장 큰 임시 옵션을 삭제합니다. 이것은 플러그인이 스스로 제거 할 옵션을 삭제할 수있는 시간을 제공합니다.
#!/bin/bash
DBNAME="mydatabase"
DBUSER="${USER}"
DBPASSWD="secret"
MYSQLBIN=/usr/bin/mysql # OR MYSQLBIN=/usr/local/mysql/bin/mysql
MYSQL="${MYSQLBIN} -s -D ${DBNAME} -u ${DBUSER} -p${DBPASSWD}"
TMP=/var/tmp/
ENTRIES_FILE="${TMP}entries.$$"
# Find option tables
for OPTION_TABLE in $( echo 'show tables like "%wp%options";' | ${MYSQL} )
do
# Find up to five large long expired transients
${MYSQL} > ${ENTRIES_FILE} <<EOF
select option_name from ${OPTION_TABLE} where option_name in
(select concat("_transient",substr(option_name,19))
FROM ${OPTION_TABLE} WHERE option_name LIKE '_transient_timeout%' AND
option_value < UTC_TIMESTAMP() - INTERVAL 1 WEEK order by option_value)
order by length(option_value) desc limit 5;
EOF
for OPTION in $( < ${ENTRIES_FILE} )
do
echo Deleting ${OPTION} from ${OPTION_TABLE}
echo delete from ${OPTION_TABLE} where option_name = \"${OPTION}\"\; | ${MYSQL}
if [[ $? -eq 0 ]]; then
echo delete from ${OPTION_TABLE} where option_name = \"_transient_timeout${OPTION:10}\"\; | ${MYSQL}
fi
done
done
rm -f ${ENTRIES_FILE}
Install the plugin Delete Expired Transients to automatically clean up the database on a daily basis.
ReferenceURL : https://stackoverflow.com/questions/10422574/can-i-remove-transients-in-the-wp-options-table-of-my-wordpress-install
'Programing' 카테고리의 다른 글
자바 스크립트 유형 배열 및 엔디안 (0) | 2020.12.29 |
---|---|
mysql의 테이블에서 모든 레코드 삭제 (0) | 2020.12.29 |
숨겨진 필드를 카피 바라로 채우는 방법? (0) | 2020.12.29 |
제약 조건을 동시에 충족 할 수 없습니다. 제약 조건이 없습니다. (0) | 2020.12.29 |
Github로 푸시 할 때 Git 푸시가 중단됩니까? (0) | 2020.12.29 |