Мой запрос занял 28,39 секунды. Как я могу его оптимизировать?Оптимизировать запрос?
explain SELECT distinct UNIX_TIMESTAMP(timestamp)*1000 as timestamp,count(a.sig_name) as counter from event a,network n where n.fsi='pays' and n.net=inet_ntoa(a.ip_src) group by date(timestamp) order by timestamp asc;
+----+-------------+-------+--------+---------------+---------+---------+--- ---+---------+---------------------------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+-------+--------+---------------+---------+---------+------+---------+---------------------------------+
| 1 | SIMPLE | a | ALL | NULL | NULL | NULL | NULL | 8177074 | Using temporary; Using filesort |
| 1 | SIMPLE | n | eq_ref | PRIMARY,fsi | PRIMARY | 77 | func | 1 | Using where |
+----+-------------+-------+--------+---------------+---------+---------+------+---------+---------------------------------+
Вы должны опубликовать свой план запроса, но на первый взгляд ваше соединение кажется, что оно будет довольно интенсивным. 'n.fsi = 'pays' и n.net = inet_ntoa (a.ip_src)'. Как по сравнению с строкой, так и с возможностью запуска функции в каждой строке, вероятно, будет основной частью вашего времени обработки. – paqogomez