У меня есть база данных mysql с около 60 миллионами записей. я буду генерировать отчет каждый день.Какой SQL лучше всего использовать
У меня есть два типа операторов sql.
Method1
SELECT TransferStatus as Transfer_Status, count(ID) as Count
FROM calldetails
WHERE YEAR(IVRStartTime) = '2015' AND MONTH(IVRStartTime) = '11' AND DAy(IVRStartTime)='05' AND CallTransfer LIKE '163%'
GROUP BY TransferStatus;
Method2
SELECT TransferStatus as Transfer_Status,
count(ID) as Count FROM calldetails
WHERE (IVRStartTime BETWEEN '2015-11-05 00.00.00' AND '2015-11-05 23.59.59')
AND CallTransfer LIKE '163%'
GROUP BY TransferStatus
Я попробовал оба запроса и занимает около 15 минут, чтобы дать результаты. Мой вопрос в том, какой из них лучше всего использовать, и есть ли другой способ повысить производительность.
подсказки: создать соответствующий индекс. –
Первый не поддается. Поэтому, даже если вы добавите индекс в столбец даты, он все равно будет медленным. См. Это http://stackoverflow.com/questions/799584/what-makes-a-sql-statement-sargable – thepirat000
Почему закрыт? Это не основано на мнениях, а основано на фактах. Голосование для повторного открытия. –