Clustering MySQL for Magento 2.0 installation
<p>I'm planning to setup a Magento 2.0 installation using MySQL Cluster o MySQL Galera Cluster for a highly available DB. One of the restrictions for these is that every table should have a PK. To my surprise, not every table on Magento 2.0 Community Edition has a PK. Most of them have one, but there are a few that don't.</p>

<p>Has anyone achieved a Magento installation with a highly available clustered DB? How did you manage that? I was thinking about just adding auto-incremental PKs to the tables that don't have a PK, but that could mean problems for future Magento upgrades with schema changes.</p>

<p>What would you do?</p>

<p>EDIT: These are the tables that would be troublesome:</p>

<pre><code>+--------------------------------------------------------------+--------+------+----------+--------+
| tbl                                                          | engine | nopk | ftidx    | gisidx |
+--------------------------------------------------------------+--------+------+----------+--------+
| magento.cataloginventory_stock_status_tmp                    | MEMORY |      |          |        |
| magento.catalogsearch_fulltext_scope1                        | InnoDB |      | FULLTEXT |        |
| magento.catalog_category_product_index_tmp                   | MEMORY | NOPK |          |        |
| magento.catalog_product_entity_media_gallery_value_to_entity | InnoDB | NOPK |          |        |
| magento.catalog_product_entity_media_gallery_value_video     | InnoDB | NOPK |          |        |
| magento.catalog_product_index_eav_decimal_tmp                | MEMORY |      |          |        |
| magento.catalog_product_index_eav_tmp                        | MEMORY |      |          |        |
| magento.catalog_product_index_price_bundle_opt_tmp           | MEMORY |      |          |        |
| magento.catalog_product_index_price_bundle_sel_tmp           | MEMORY |      |          |        |
| magento.catalog_product_index_price_bundle_tmp               | MEMORY |      |          |        |
| magento.catalog_product_index_price_cfg_opt_agr_tmp          | MEMORY |      |          |        |
| magento.catalog_product_index_price_cfg_opt_tmp              | MEMORY |      |          |        |
| magento.catalog_product_index_price_downlod_tmp              | MEMORY |      |          |        |
| magento.catalog_product_index_price_final_tmp                | MEMORY |      |          |        |
| magento.catalog_product_index_price_opt_agr_tmp              | MEMORY |      |          |        |
| magento.catalog_product_index_price_opt_tmp                  | MEMORY |      |          |        |
| magento.catalog_product_index_price_tmp                      | MEMORY |      |          |        |
| magento.catalog_url_rewrite_product_category                 | InnoDB | NOPK |          |        |
| magento.cms_block                                            | InnoDB |      | FULLTEXT |        |
| magento.cms_page                                             | InnoDB |      | FULLTEXT |        |
| magento.customer_grid_flat                                   | InnoDB |      | FULLTEXT |        |
| magento.oauth_nonce                                          | InnoDB | NOPK |          |        |
| magento.sales_creditmemo_grid                                | InnoDB |      | FULLTEXT |        |
| magento.sales_invoice_grid                                   | InnoDB |      | FULLTEXT |        |
| magento.sales_order_grid                                     | InnoDB |      | FULLTEXT |        |
| magento.sales_shipment_grid                                  | InnoDB |      | FULLTEXT |        |
| magento.widget_instance_page_layout                          | InnoDB | NOPK |          |        |
+--------------------------------------------------------------+--------+------+----------+--------+
</code></pre>