If the relationship is 1: 1, then this technique is called vertical partitioning. It is used to separate the structure of the table vertically for optimization.
Example 1: for example, from the users table, the home address of the user address is rarely read. Then it is possible to divide this table into two, and store the address separately, reading it if necessary. This technique will reduce the size of the users table, and small tables work faster.
Example 2: in the same table there is a last_login field that is updated each time a user logs in. But every time the table is updated, the query cache stops working! By placing this field in a separate table, we will keep users updated to a minimum.
Example 3: the table is huge. ALTER TABLE cannot be done (the operation is very long, simple project). The extra column is rarely used. It makes sense to put it in a separate table. On the other hand, to solve a non-blocking ALTER TABLE problem, there is a pt-online-schema-change
But first, make sure that these separated tables do not have to be merged all the time , because, on the contrary, it can reduce performance.