title: In Postgres, how to match multiple "tags" for best performance?
body: <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>