kiltum (kiltum) wrote,
kiltum
kiltum

Нет, я всё понимаю и так далее, но есть кто-нибудь среди моих френдов, кто может объяснить вот такое вот поведение индексов в MySQL

mysql> select sum(bytes) as 'downlaod' from ip where inet_ntoa(dst_ip)='10.2.1.226' and inet_ntoa(src_ip)='10.2.3.2' and stime> unix_timestamp('2006-11-16 00:00:00') ;
+----------+
| downlaod |
+----------+
|  5350058 | 
+----------+
1 row in set (3.14 sec)

mysql> create index cool1 on ip (bytes,dst_ip,src_ip,stime);Query OK, 4751244 rows affected (43.81 sec)
Records: 4751244  Duplicates: 0  Warnings: 0

mysql> select sum(bytes) as 'downlaod' from ip where inet_ntoa(dst_ip)='10.2.1.226' and inet_ntoa(src_ip)='10.2.3.2' and stime> unix_timestamp('2006-11-16 00:00:00') ;
+----------+
| downlaod |
+----------+
|  5350058 | 
+----------+
1 row in set (11.41 sec)

mysql> explain select sum(bytes) as 'downlaod' from ip where inet_ntoa(dst_ip)='10.2.1.226' and inet_ntoa(src_ip)='10.2.3.2' and stime> unix_timestamp('2006-11-16 00:00:00') ;
+----+-------------+-------+-------+---------------+-------+---------+------+---------+--------------------------+
| id | select_type | table | type  | possible_keys | key   | key_len | ref  | rows    | Extra                    |
+----+-------------+-------+-------+---------------+-------+---------+------+---------+--------------------------+
|  1 | SIMPLE      | ip    | index | NULL          | cool1 | 20      | NULL | 4751244 | Using where; Using index | 
+----+-------------+-------+-------+---------------+-------+---------+------+---------+--------------------------+
1 row in set (0.00 sec)



Для меня самым странным стало то, что добавление индекса увеличило время выполнения запроса в 3 раза. Я почему-то считал, что добавление индекса может сделать лучше (а может и не сделать), но не хуже ...

P.S. В базу во время теста ничего не писалось.

Update: переписал запрос и оно пошло.
Subscribe
  • Post a new comment

    Error

    default userpic

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 16 comments