WordPress 설치의 wp_options 테이블에서 과도 상태를 제거할 수 있습니까?
최근에 알게 된 건wp_options
테이블이 좀 큰 것 같아요.1161줄로 구성되어 있으며 크기는 약 2.1mb입니다.
Clean Options가 설치되어 있습니다.2010년에 플러그인의 개발이 정지된 것처럼 보이지만, 그래도 잘 되어가고 있습니다.
고립될 가능성이 있는 엔트리의 리스트가 길어졌습니다.이것들을 분류하고, 어떤 것을 삭제하고, 어떤 것을 보존할지를 결정하는 쉬운 방법이 있을까요?또, 이것이 Web 사이트의 퍼포먼스 문제의 원인이 되는 것은 아닐까요?
읽어주셔서 감사합니다, 어떤 아이디어라도 환영합니다!
업데이트: Clean Options 플러그인이 목록에 몇 가지 임시 파일을 반환했습니다.이것에 의해, 몇백개의 임시 파일이 있는 것을 알 수 있었습니다.wp_options
테이블. 이렇게 생긴 것들이 많이 있어요.
_site_transient_browser_5728a0f1503de54634b3716638...
_site_transient_timeout_browser_03df11ec4fda7630a5...
_transient_feed_83dcaee0f69f63186d51bf9a4...
_transient_plugin_slugs
_transient_timeout_feed_83dcaee0f69f63186d51bf9a4b...
기타 등등.말씀드렸듯이, 이렇게 생긴 줄이 수백 개 있습니다.그냥 버려도 안전한가요?
감사해요.
안전하게 폐기할 수 있습니다.워드프레스 및 일부 플러그인은 필요에 따라 과도 상태를 다시 생성합니다.과도란 복잡한 쿼리에서 저장된 값입니다.결과는 임시로 저장되므로 시스템은 공통 쿼리를 반복해서 수행할 필요가 없습니다. 대신 임시 쿼리가 존재하고 만료되지 않은 경우만 찾습니다.물론, 변경하기 전에 데이터베이스 백업을 만들어 문제가 발생하지 않도록 하십시오.
모든 것을 백업한 후 다음과 같이 mysql 문을 실행할 수 있습니다.
DELETE FROM `wp_options` WHERE `option_name` LIKE ('%\_transient\_%')
[편집: 이스케이프 문자로 고정된 스테이트먼트, 코멘트 제안 후]
과도기가 재생성될 때 삭제할 수 있습니다.일부 플러그인의 장애 상황이나 설계 문제로 인해 만료된 과도기가 축적될 수 있습니다.이에 대처하는 한 가지 방법은 만료된 과도기를 제거하면서 현재의 과도기가 기능을 수행하도록 하는 것입니다.며칠 동안 만료된 과도기만 삭제하면 오래된 과도기를 발생시키는 플러그인을 모니터링하고 문제를 수정하거나 보고하는 작업을 수행할 수 있습니다.
다음은 데이터베이스 내의 wp* 옵션테이블을 검색하여 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}
Delete Expired Transients 플러그인을 설치하여 데이터베이스를 매일 자동으로 정리합니다.
언급URL : https://stackoverflow.com/questions/10422574/can-i-remove-transients-in-the-wp-options-table-of-my-wordpress-install
'programing' 카테고리의 다른 글
쿼리 조건이 JPA 및 스프링을 충족하는 경우 행 삽입 (0) | 2023.01.20 |
---|---|
Pthread 라이브러리에서 스레드 제거 (0) | 2023.01.20 |
MySQL 날짜 문자열을 Unix 타임스탬프로 변환 (0) | 2023.01.20 |
통신 링크 장애: 1047 WSREP에서 어플리케이션용 노드가 아직 준비되지 않았습니다. (0) | 2023.01.20 |
java.lang을 방지하려면 어떻게 해야 하나요?NumberFormatException:입력 문자열의 경우: "N/A"? (0) | 2023.01.20 |