最近为了降低成本,我们把web服务的数据库从orcale迁到了mysql, mysql上表结构和索引的建立同orcale库相同,程序上面也只是把sql语句改成了mysql支持的语法。但是web服务跑起来以后出现了严重的性能问题,页面的响应的响应速度都明显变慢了,以前大概是几百毫秒,现在则需要5秒甚至更多,直接在mysql上执行页面的查询sql就需要好几秒钟。有些sql的逻辑是比较复杂,最复杂的关联了两个表,表的数据规模大概在十万到百万级。想请教各位大牛,迁库后遇到这种问题应该从哪方面下手,数据库优化还是修改程序逻辑?在此先感谢各位了~~~
mysqlweb服务优化

解决方案 »

  1.   

    用innodb引擎   开足够大的buffer_pool
      

  2.   


    现在看来应该是sql的执行效率很低,但是之前在orcale上执行地很好~如果对mysql库进行性能优化对效率的提升明显吗?
      

  3.   

    既然mysql客户端都执行需要几秒  肯定不是网络原因
    既然索引和表结构都和oracle差不多  应该不是sql语句的问题  不过还是建议explain一下执行计划看看是否是你想要的执行计划不过严重在怀疑是mysql内存开的足够小 数据没有缓存不到内存
      

  4.   

    机器的硬件配置是否相同,表结构、索引是否相同,
    EXPLAIN SQL语句,看看结果
      

  5.   

    感谢各位,问题解决了,优化了sql查询语句,添加联合索引的方法非常有效,可以使group by语句走索引而不建立庞大的临时表,页面的响应时间从十几秒缩短到了一秒以内。