mysql таблица объекта недвижимости.
+------------+------------+-----+-------------+
| real_id | date | ... | locality_id |
+------------+------------+-----+-------------+
| 1 | 12.12.2012 | ... | 2 |
| 2 | 12.12.2013 | ... | 2 |
| ... | ... | ... | ... |
| 23.000.000 | 12.12.2018 | ... | 5 |
+------------+------------+-----+-------------+
таблица с фото
+-------------+-----------+---------+
| foto_id | url | real_id |
+-------------+-----------+---------+
| 1 | 1.jpg | 1 |
| 2 | 2.jpg | 1 |
| ... | ... | ... |
| 200.000.000 | 98989.jpg | 55555 |
+-------------+-----------+---------+
таблицу с фото хочется порезать на шарды по 5млн. но тогда потеряется простая возможность
select * from foto_table where real_id = 2;
Не будет ли больно если хранить связи с фото через implode в колонке?
+------------+------------+-----+-------------+---------+
| real_id | date | ... | locality_id | foto |
+------------+------------+-----+-------------+---------+
| 1 | 12.12.2012 | ... | 2 | 1_2 |
| 2 | 12.12.2013 | ... | 2 | 7_4_3 |
| ... | ... | ... | ... | ..._... |
| 23.000.000 | 12.12.2018 | ... | 5 | 5_6_3 |
+------------+------------+-----+-------------+---------+
а таблицу с фото привести к виду
+-------------+-----------+
| foto_id | url |
+-------------+-----------+
| 1 | 1.jpg |
| 2 | 2.jpg |
| ... | ... |
| 200.000.000 | 98989.jpg |
+-------------+-----------+
поиск все равно работает на Elasticsearch. Таблица объектов будет резаться по locality_id. Т.е. стараться все данные хранить в записи, что бы не искать их по шардам.