пожалуйста, у меня такая же проблема, как я нашел здесь
MySQL - выбор данных из нескольких таблиц с одинаковой структурой, но с разными данными ,
Мне нужно выбрать данные из многих таблиц MySQL с идентичной структурой, но разными данными (разделить на table_0, table_1, table_2 и т. Д. На table_5, чтобы распределить миллионы записей данных).
Аппаратные средства, генерирующие записи данных для каждого устройства, перемещаются из таблицы в таблицу в соответствии с полем отметки времени, которое НЕ является уникальным. например 50 записей в table_0 могут иметь одинаковую метку времени. Когда данные доходят до конца таблицы_5, они возвращаются к таблице_0, чтобы начать перезапись данных там. Мне нужно получить данные на каждом устройстве за определенный промежуток времени.
Столбцы данных каждой таблицы (для таблицы_0, таблицы_1 ... до таблицы_5):
timestamp, robotGroupID, robotID, sensor1, sensor2, sensor3, ... (many of them)
Однако таблицы ОГРОМНЫ, и UNION ALL (я читаю его быстрее, чем DISTINCT) выполняется вечно, даже с двумя таблицами, не говоря уже о 6. Например. Ниже я приведу две таблицы.
Оператор MySQL в PHP: (показан только для датчика 1, датчика 2 и датчика 3)
(SELECT sensor1, sensor2, sensor3 FROM table_0 WHERE robotID=".$robotID." AND timestamp BETWEEN ".$timeStampStart." AND ".$timeStampStop)<br/>
UNION ALL<br />
(SELECT sensor1, sensor2, sensor3 FROM table_1 WHERE robotID=".$robotID." AND timestamp BETWEEN ".$timeStampStart." AND ".$timeStampStop)
N.B это точно такой же запрос, за исключением имени таблицы. Данные датчика для робота за определенный промежуток времени могут охватывать ни одну, одну или несколько таблиц одновременно.
Я не могу использовать LIMIT, потому что количество отчетов от роботов в каждом временном диапазоне не может быть известно заранее. Я не могу использовать MERGE STORAGE ENGINE, потому что у меня есть только доступ только для чтения к базе данных компании.
У меня есть идея использовать count (robotID) или около того в каждой таблице для проверки перед выполнением запросов, но я не уверен, как это сделать, потому что я довольно новичок.
Пожалуйста, как вы думаете, я могу сделать это быстрее для 6 таблиц и еще большего количества столбцов, поскольку столбцов намного больше, чем показано на рисунке? Заранее спасибо!