У меня есть таблица с примерами загрузки в Dropbox.
загрузка в mysql с балансом имени таблицы
загрузка в mysql с доходом по имени таблицы
Показать структуру данных:
describe balance;
+----------------------+--------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------------------+--------+------+-----+---------+-------+
| code | text | YES | | NULL | |
| report_date | date | YES | | NULL | |
| total_assets | double | YES | | NULL | |
| total_owner_equities | double | YES | | NULL | |
+----------------------+--------+------+-----+---------+-------+
4 rows in set (0.00 sec)
describe income;
+--------------------------+--------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------------------------+--------+------+-----+---------+-------+
| code | text | YES | | NULL | |
| report_date | date | YES | | NULL | |
| total_operating_revenue | double | YES | | NULL | |
| net_profit | double | YES | | NULL | |
| np_parent_company_owners | double | YES | | NULL | |
+--------------------------+--------+------+-----+---------+-------+
5 rows in set (0.01 sec)
В обеих таблицах содержится небольшая запись.
select count(*) from income;
+----------+
| count(*) |
+----------+
| 51250 |
+----------+
1 row in set (0.06 sec)
select count(*) from balance;
+----------+
| count(*) |
+----------+
| 50832 |
+----------+
1 row in set (0.05 sec)
Для выполнения запроса равного соединения требуется еще 4 минуты.
select a.code ,a.report_date ,a.total_assets ,a.total_owner_equities,
b.total_operating_revenue,b.net_profit ,b.np_parent_company_owners
from balance as a ,income as b
where a.code=b.code and a.report_date=b.report_date;
50793 rows in set (4 min 5.15 sec)
Как оптимизировать mysql равный запрос соединения для скорости в этом случае?