前两天对一个近百万记录的表做了个查询,就一条语句执行起来超慢,动不动把MySQL 都弄死了。弄的俺郁闷了几天?语句很简单:select sum(A) from table_1 group by B 。Table_1 表做其他查询时都没有问题,我觉得应该是Group By 出了问题 ,网上有些同志说是 group 查询大表时 很 影响速度?俺也不知道是不是真的!!!麻烦各位高手给看看有没有什么办法给优化一下或者有没有其他办法给提供参考一下~~小弟谢谢了~~
解决方案 »
- php下跑的mysql被新装的数据库完全覆盖,有什么方法可以恢复之前的数据库???
- 请帮忙:Postgis文档中,java client部分代码,修改了下无法在jsp+tomcat6.0+jdk1.5的环境下编译通过
- MySQL字符串
- 真怪了,-- 在存储过程不能注释吗?为何用 -- 注释会报错呢?(/* */可以用,但是 -- 为何不能用呢?)
- navicat能实现时间同步吗
- 在PostgreSQL里怎样将纵向的不确定的查询结果变成横向的?
- 创建触发器函数
- 求教一条SQL语句
- 【敢问MySQL除了免费之外,还有什么优点?况且操作起来这么麻烦!】
- 新手!properties的内容如何写?请帮我改一下.
- 请教mysql访问冲突问题,在线等!
- mysql 创建特殊表
如果你的B没有建立索引,而且是字符类型的话,估计只有等死了:(
你把A和B都建立好索引可能会快些
分析一下,上面的SQL语句查询的时候有没有用到索引,并不是你已经建了5个索引就一定会用到,再根据上面分析到的结果看看,该如何建索引mysql才会用到。
另外 ,mysql在 千万级别的数据上才会表现劣势。在百万级别跑的 非常快。
你碰到的情况,只能说明,用的太烂
mysql> SELECT COUNT(*) FROM tbl_name
WHERE key_part1=val1 AND key_part2=val2;
mysql> SELECT key_part2 FROM tbl_name GROUP BY key_part1;下列查询使用索引以排序顺序检索,不用一次另外的排序: mysql> SELECT ... FROM tbl_name ORDER BY key_part1,key_part2,...
mysql> SELECT ... FROM tbl_name ORDER BY key_part1 DESC,key_part2 DESC,...10.5.4 MySQL怎样优化LEFT JOIN