以前数据量少的情况下,页面查询很快。现在有几万笔数据了,查询相应的数据很慢,要几十秒才能把数据结果在页面上显示。索引我也加过了,还是没有用。怀疑是sql语句的问题,在数据库里直接查询的结果:显示行 0 - 0 (1 总计, 查询花费 1.6105 秒),请问有无方法优化?请高手支招,谢谢!select * from `barcode_all` where `packageno`= 'CVT120207037'or`packageno`= ''or`packageno`= ''or`packageno`= ''or`packageno`= ''or`packageno`= ''or`packageno`= ''or`packageno`= ''or`packageno`= ''or`packageno`= ''or`packageno`= ''or`packageno`= ''or`packageno`= ''or`packageno`= ''or`packageno`= ''or`packageno`= ''or`packageno`= ''or`packageno`= ''or`packageno`= ''or`packageno`= '' group by packageno
show index from barcode_all
的结果以供分析。虽然可以改为 in (... 但仅是视觉上好看,效率不会提高。
1 PRIMARY <derived2> ALL NULL NULL NULL NULL 41712 Using where; Using temporary; Using filesort
2 DERIVED barcode_2d_temp ALL NULL NULL NULL NULL 1
3 UNION barcode_2d ALL NULL NULL NULL NULL 41426
4 UNION barcode_2d_n ALL NULL NULL NULL NULL 417
5 UNION barcode_2d_sep ALL NULL NULL NULL NULL 80
6 UNION barcode_2d_sep_temp ALL NULL NULL NULL NULL 1
NULL UNION RESULT <union2,3,4,5,6> ALL NULL NULL NULL NULL NULL
+----+--------------+---------------------+------+---------------+------+-------
--+------+-------+-------+
| id | select_type | table | type | possible_keys | key | key_le
n | ref | rows | Extra |
+----+--------------+---------------------+------+---------------+------+-------
--+------+-------+-------+
| 1 | PRIMARY | <derived2> | ALL | NULL | NULL | NULL
| NULL | 41712 | |
| 2 | DERIVED | barcode_2d_temp | ALL | NULL | NULL | NULL
| NULL | 1 | |
| 3 | UNION | barcode_2d | ALL | NULL | NULL | NULL
| NULL | 41426 | |
| 4 | UNION | barcode_2d_n | ALL | NULL | NULL | NULL
| NULL | 417 | |
| 5 | UNION | barcode_2d_sep | ALL | NULL | NULL | NULL
| NULL | 80 | |
| 6 | UNION | barcode_2d_sep_temp | ALL | NULL | NULL | NULL
| NULL | 1 | |
| NULL | UNION RESULT | <union2,3,4,5,6> | ALL | NULL | NULL | NULL
| NULL | NULL | |
+----+--------------+---------------------+------+---------------+------+-------
--+------+-------+-------+
7 rows in set (4.78 sec)请问怎么视图怎么带索引?
`barcode_2d_temp`
`barcode_2d`
`barcode_2d_n`
`barcode_2d_sep`
`barcode_2d_sep_temp`是否有索引packageno
有索引,谢谢斑竹!我已经用临时表搞定。不过请问mysql临时表的临时文件存在哪个路径下?windows系统。
如果是myisam引擎的临时表 放在 show variables like '%tmp%' 目录下