Вот мой запрос:
SELECT email_data.id, email_data.source_file, email_data.report_id,
email_data.filePath, email_data.fileName, email_data.size,
email_data.emailID, email_data.msgID, email_data.cus, email_data.subject,
email_data.sentto, email_data.emailFrom, email_data.hdrs, email_data.cc,
email_data.bcc, email_data.extracted, email_data.DateTime,
email_data.TimeStamp, email_data.OriginalDateTime, email_data.ParentID,
email_data.reply_to, email_data.MD5Hash, email_data.duplicated,
email_data.TimeZone, email_data.AttachName, email_data.fqdn,
attach_data.id, attach_data.source_file, attach_data.report_id,
attach_data.filePath, attach_data.fileName, attach_data.size, attach_data.ext,
attach_data.emailID, attach_data.cus, attach_data.extracted,
attach_data.MD5Hash, attach_data.duplicated
FROM email_data
LEFT JOIN attach_data
ON (email_data.emailID = attach_data.emailID);
Комбинация обеих таблиц имеет 50k + записей (email_data имеет 22k записей, а другие имеют 30K + записей).
Выше запрос берет верх90 минут и все еще не закончено.
Этот:
SELECT email_data.id, attach_data.id
FROM email_data
LEFT JOIN attach_data
ON (email_data.emailID = attach_data.emailID);
занимает 2 минуты 22 секунды:
Что я делаю не так?Похоже, что MySQL не использует достаточно памяти для ускорения, и он использует только 1 ядро из 16 ядер.
Как я могу настроить его для использования всех доступных ресурсов?
Или долженЯ запрашиваю идентификаторы (как во втором запросе) и зацикливаюсь + выбираю каждый из них обратно в моем коде?Приведет ли это к тому же результату?
Мне нужны все эти поля и все строки, я преобразовываю их в пользовательский формат, похожий на CSV, чтобы его можно было экспортировать в другое программное обеспечение.1021 *
mysql> show columns from email_data;
+------------------+----------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------------+----------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| source_file | longtext | YES | | NULL | |
| report_id | int(11) | YES | | NULL | |
| filePath | longtext | YES | | NULL | |
| fileName | longtext | YES | | NULL | |
| size | int(11) | YES | | NULL | |
| emailID | longtext | YES | | NULL | |
| msgID | longtext | YES | | NULL | |
| cus | longtext | YES | | NULL | |
| subject | longtext | YES | | NULL | |
| sentto | longtext | YES | | NULL | |
| emailFrom | longtext | YES | | NULL | |
| hdrs | longtext | YES | | NULL | |
| cc | longtext | YES | | NULL | |
| bcc | longtext | YES | | NULL | |
| extracted | longtext | YES | | NULL | |
| DateTime | char(1) | YES | | NULL | |
| TimeStamp | int(11) | YES | | NULL | |
| OriginalDateTime | char(1) | YES | | NULL | |
| ParentID | longtext | YES | | NULL | |
| reply_to | longtext | YES | | NULL | |
| MD5Hash | longtext | YES | | NULL | |
| duplicated | char(1) | YES | | NULL | |
| TimeZone | char(1) | YES | | NULL | |
| AttachName | longtext | YES | | NULL | |
| fqdn | longtext | YES | | NULL | |
+------------------+----------+------+-----+---------+----------------+
Почти то же самое для attach_data