客户的服务器的MYSQL库中有个表有100万记录数
我用ADO使用固定IP连上,然后查询 select * from 表 where 字段1 like 'mei hao' or 字段2 like '%美好%' limit 0,5
只取5条都非常的慢......有时要十几秒 有时要几十秒
如果取50条,要1分钟了
已经对某些字段建了索引,还是慢,怎么办呢

解决方案 »

  1.   

    1.建立索引(聚合索引是主键,primary  key(id) 非聚合索引,index(id)
    2.優化查詢;
    3.提高硬件;
    ... 
     
      

  2.   

    like  全记录扫描,悲剧
      

  3.   

    加全文索引给你个URL
    http://coolknight.spaces.live.com/Blog/cns!C1EA9EE76E9ED053!716.entry
      

  4.   

    like '%XXX%'是用不到索引的,文档上已经有说明的啦,10几秒算快的了
      

  5.   

    是啊,我也知道LIKE会慢
    模糊查询不用LIKE还有什么别的方法吗?
    各位网友帮一起想想办法,先谢谢了
      

  6.   

    待查询表是什么存储引擎?
    innodb or MyISAM
    或者用全文检索会不会好一些,自己做做试验
      

  7.   


    明显跟你服务器有关了,忙的时候时间长点,闲就能短点,软的办法都想光了就动硬的
    还有就是ADO对MySQL支持并不好,是通过ODBC连的吧,
    如果你直接在MySql客户端上执行时间明显要短得多的话就换个访问组件看看?比如UniDac