web-dev-qa-db-ja.com

私のデータベースにあるたくさんさんのTwitter行

Wp_postsテーブルに264,307 "http"(post_type = http)行があります。それらの99%がこのpost_titleを持っています:

GET http://Twitter.com/statuses/user_timeline/@xcentric.json?count=100

そしてpost_statusとして "error"。

自分のサイトに影響を与えずにこれらを単純に削除できますか?私のwp_postsテーブルは5GBです。

ありがとう

2
Chet Loesing

これらの行をすべて削除するための餌とスイッチの方法は次のとおりです。

CREATE TABLE wp_posts_new LIKE wp_posts;
ALTER TABLE wp_posts_new DISABLE KEYS;
INSERT INTO wp_posts_new SELECT * FROM wp_posts
WHERE post_type'http'
AND post_title<>'GET http://Twitter.com/statuses/user_timeline/@xcentric.json?count=100';
ALTER TABLE wp_posts_new ENABLE KEYS;
ALTER TABLE wp_posts RENAME wp_posts_old;
ALTER TABLE wp_posts_new RENAME wp_posts;

今すぐあなたのウェブサイトの使用を開始します。

wp_postsが問題なく機能していることが確実な場合は、古いファイルを削除してください。

DROP TABLE wp_posts_old;

または、数日間そのままにして後でドロップすることもできます。

古いテーブルを元の状態に戻したい場合は、次のように元に戻します。

ALTER TABLE wp_posts RENAME wp_posts_new;
ALTER TABLE wp_posts_old RENAME wp_posts;

試してみる !!!

更新2012-01-05 17:27 EDT

Post_titleにTwitterがあるhttp投稿を削除する

CREATE TABLE wp_posts_new LIKE wp_posts;
ALTER TABLE wp_posts_new DISABLE KEYS;
INSERT INTO wp_posts_new SELECT * FROM wp_posts
WHERE NOT (post_type='http' AND LOCATE('Twitter',post_title) > 0);
ALTER TABLE wp_posts_new ENABLE KEYS;
ALTER TABLE wp_posts RENAME wp_posts_old;
ALTER TABLE wp_posts_new RENAME wp_posts;
1
RolandoMySQLDBA

それらの行にpost_contentはありますか?おそらくそれらは何らかのTwitterプラグインによって作られたので、それがインストールされているかどうか、そしてそれがアクティブまたは非アクティブに設定されているかどうかを見てください。データがサイトやブログで表示されなくなったり使用されなくなった場合は、それらの行は目的を果たさなくなったため、削除することができます。

1
stealthyninja