In Postgres, how to match multiple "tags" for best performance?
<p>Table: articles</p>

<pre><code>+--------+------+------------+
| id     | title|    created |
+--------+------+------------+
|    201 | AAA  | 1482561011 |
|    202 | BBB  | 1482561099 |
|    203 | CCC  | 1482562188 |
+--------+------+------------+
</code></pre>

<p>Table: taggings</p>

<pre><code>+-----------+------+
| articleid | tagid|
+-----------+------+
|    201    | 11   |
|    201    | 12   |
|    202    | 11   |
|    202    | 13   |
|    202    | 14   |
+-----------+------+
</code></pre>

<p>Now if given <strong>3 tag ids</strong>, what is the best index design and query to select latest 10 articles that <strong>each article match the 3 tag ids at the same time</strong>?<br>
I know there can be several ways to do it, but I'm concerning the <strong>performance</strong>, considering there maybe tens of thousands of articles in each tag</p>