0

私が知っているマイクロ最適化は、私が興味を持っているからです。

私は2つのリンクテーブルを持っています、

blog_categories_posts => post_id, category_id  
blog_tags_posts       => post_id, tag_id

以下に基づいて、両方のテーブルからすべてのリンクを削除していますpost_id

DELETE FROM blog_categories_posts WHERE post_id = {$id};
DELETE FROM blog_tags_posts WHERE post_id = {$id};

とにかく、一度に両方のテーブルから削除できるかどうか、そしてそれがパフォーマンス(マイクロながら)ヒットまたはゲインになるかどうか疑問に思っていますか?

それが機能するかどうかを想像します:

DELETE FROM blog_categories_posts, blog_tags_posts where post_id = {$id} 

または同様の構文?

4

1 に答える 1

0

構文は mysql の Web サイトにあります: Delete Syntax

DELETE FROM tbl1, tbl2
USING tbl1
JOIN tb2 USING (id)
WHERE id = :id

したがって、あなたの例では次のようになります。

DELETE FROM blog_categories_posts, blog_tags_posts
USING blog_categories_posts
JOIN blog_tags_posts USING (post_id)
WHERE post_id = $id

多くのテーブルを追加するのも非常に簡単です:

DELETE FROM tbl1, tbl2, tbl3, tbl4, tbl5
USING tbl1
JOIN tb2 USING (id)
JOIN tb3 USING (id)
JOIN tb4 USING (id)
JOIN tb5 USING (id)
WHERE id = :id
于 2013-06-06T15:45:28.420 に答える