in Վորդպրես, ՏՏ

Վորդպեսս լոգո
Ինչպես երևի արդեն գիտեն Վորդպրես օգտագործողները, հրապարակված է Վորդպրեսի հաջորդ թարմացումը։ Ինչպես բոլոր այն մարդիկ, ովքեր մտահոգված են իրենց կայքի անվտանգությամբ, ես էլ թարմացրեցի կայքի դվիժոկը շարժիչը ։)։ Այն թարմացնելուց առաջ ընդանհարապես խորհուրդ է տրվում բեքափել տվյալների բազան և կայքի ֆայլերը։ Ասված է, արված է։ Հերթական բեքափը արված է, ու ի՞նչ։  Ի՞նչը ինչ, եկավ էքսպերիմենտների ժամանակը։ Մտքովս անցավ բազան մի քիչ թեթեվացնեմ, սկսեցի քրքրել ու գտա երկու բան, որոնք կարելի է անել։

Ստորև նկարագրված գործողությունները իրականացնելուց առաջ անպայման բեքափեք ձեր կայքի տվյալների բազան

ա․ Թեթևացնել wp_posts աղյուսակը։

Այստեղ պահվում են ձեր կայքի հոդվածները, ինչպես նաև մի քանի այլ բան։ Վորդպրեսը ունի հոդվածների հին տարբերակները պահպանելու մեխանիզմ։ Հին տարբերակները կոչվում են ռեվիզիաներ։ Դրանք նույնպես պահպանվում են այս աղյուսակում։

Դրանք տեսնելու համար մտնում եք phpMyAdmin ու կատարում եք sql -ի հետևյալ հարցումը

SELECT  *
FROM `wp_posts`
WHERE `post_type` = 'revision'

 

Իսկ եթե ցանկանում եք տեսնել թե ինչ քանակություն են կազմում այդ ռեվիզիաները ընդհանուր գրառումների մեջ, արեք այսպես

SELECT SUM(
          CASE WHEN `post_type` = 'revision'
               THEN 1
               ELSE 0
           END
          ) AS CountRevisions
 ,COUNT( * ) AS CountAll
 FROM `wp_posts`

իմ բազայում մոտ 1200 գրառումներից մոտ 200-ը ռեվիզիաներէին։ Դա մեղմ ասած շատ է, իհարկե ռեվիզիաների մեխանիզմը շատ օգտակար կարող է լինել, բայց ես գտնում եմ, որ ժամանակ առ ժամանակ չի վնասի դրանք մաքրել, պարբերականությունը կախված է նոր նյութերի հայտնվելու հաճախականությունից , ինչպես նաև կայքի ընդհանուր բեռնվածությունից: Որքան ավելի քիչ են wp_posts աղյուսակի գրառումները, այնքան ավելի արագ կախշատի կայքը։ (այս տարբերությունը զգալի է միայն շատ հոդվածներով ու մեծ հաճախելիությամբ կայքերի վրա, որոնք նաև այլ առումներով օպտիմիզացված են)։

Ջնջում եք այսպես

DELETE FROM `wp_posts` WHERE `post_type` = 'revision'

բ․  Թեթևացնել wp_comments և wp_commentmeta աղյուսակների պարունակությունը

իմ դեպքում akimset փլագինը ամսեկան հարյուրավոր սփամ մեկնաբանություններ է բռնցնում, կարելի է իհարկե akimset -ի կարգավորումների մեջ դնել «Auto-delete spam submitted on posts more than a month old.» բայց դե, այս տարբերակը նույնպես չի խանգարում իմանալ։ Առավել ևս , որ կարելի է միավորել նաև ա․ կետում նկարագրված SQL- հարցումը այս մյուսի հետ ու ունենալ «թեթևացնիչ սքրիփտ»։ Ինչևէ, մաքրում ենք այսպես ՝

սկզբում

DELETE FROM `wp_commentmeta`
 WHERE `comment_ID`
 IN ( SELECT `comment_ID`
 FROM `wp_comments`
 WHERE `comment_approved` = 'spam'
 )

ապա

DELETE FROM `wp_comments`
 WHERE `comment_approved` = 'spam'

Այս ամենը ես իրականացրել եմ իմ բլոգի տվյալների բազայի վրա, կայքի աշխատանքի ոչ մի խափանում չի նկատվել, սակայն նորից եմ կրկնում, այս գործողությունները իրակացնելուց առաջ անպայման բեքափեք ձեր կայքի տվյալների բազան։

ՀԳ։ Ռեվիզիաները կարելի է տեսնել նաև Վորդպրեսի ստանդարտ խմբագրիչի միջոցով, դրանք կարելի է նաև ջնջել հատ հատ, բայց ոչ բոլորը միաժամանակ։

ՀԳ։ Այս ամենը կարելի է անել նաև փլագին-մլագինների միջոցով, բայց ինչքան քիչ փլագին այնքան լավ, ինչքան քիչ պատրաստ բան այնքան ավելի հետաքրքիր ու ուսանելի։

  1. սենց ավելի ճոխ ա 🙂

    DELETE a,b,c
    FROM wp_posts a
    LEFT JOIN wp_term_relationships b ON (a.ID = b.object_id)
    LEFT JOIN wp_postmeta c ON (a.ID = c.post_id)
    WHERE a.post_type = ‘revision’

Comments are closed.