现在有一张表,数据在30W左右,InnoDB类型,字段15个,主键int自动增长。部署到tomcat中,现在系统里做一个查询,该查询结果会显示3W条数据,执行时间在3-5分钟。再查询过程中,进行其他操作(简单查询操作),查询的是同一张表,会变的很慢很慢(大概需要好几分钟,正常情况下几毫秒)。请问是什么情况导致的呢?坐等答案。

解决方案 »

  1.   

    因素有很多,表、索引设计是否合理,SQL语句是否优化等等
    SQL语句是什么、索引情况、SHOW EXPLAIN SQL语句
      

  2.   

    现在问题不是速度,是查询过程中,为什么会影响其他的查询操作(同一张表)?对MYSQL不熟悉,希望有高手能热心解答。
      

  3.   

    ..说明这个查询 消耗了大量的性能..导致其他sql语句无法拥有足够资源运行语句..
    优化这个语句吧
      

  4.   

    1 开启慢查询日志
    2 对所有慢的查询做explain 的索引检查
    3 对于大的结果,加上 SQL_BUFFER_RESULT 试试。SQL_BUFFER_RESULT 促使结果被放入一个临时表中。这可以帮助MySQL提前解开表锁定
      

  5.   


    select查询,只有在需要创建磁盘临时表进行ORDER BY或者GROUP BY的时候,才有IO发生吧抢CPU是免不了的。
      

  6.   

    DB读数据,最大的资源,是I/O,所以,你要看一下,你的合理应用。
    一,硬件,SCSI硬盘,和IDE/SATA的相比,I/O的读取,IDE/SATA会占取85%的CPU资源,而SCSI占取不到5%,
    二。硬件,内存,内存是否过小,一般,2G内存,甚至1G内存,对付这种30W,是非常小CASE,但是,你是否是在同时运行GUI的时候,或在其它占用内存大量的时候,在运行SQL。
    三,网速,LOCALHOST不需要考虑,但是,如果是公网节点,另当别论,网速传输。
    四。表结构,是否是用大量的VARCHAR,TEXT这种字段,这种字段,是检索最慢。
    五。索引,是否有用到索引,WHERE后面的字段,是否有建立索引,索引是用单一索引,还是复合索引,是否合理。
    六,查询,是否是有用到子查询,复合查询,嵌套查询,还有,STRING字段,是否有用like '%%'查询,如果是这样,想优化,都优化不起来。
      

  7.   

    哦,还忘了一点,你用tomcat,那么,有一个页面超时时间,是不是设置的很长,还有,MYSQL的连接,是用connect还是pconnect,有没有及时关闭。也是造成影响的原因
      

  8.   

    凡是爱好mysql的,喜欢进入此板块回答问题的坛友,欢迎浏览此贴http://topic.csdn.net/u/20110219/23/8229318f-1058-4fcd-985a-46d0fa4eceb3.html?seed=46004714&r=71740454#r_71740454
      

  9.   

    你的JSP显示这三万数据需要多久啊?