MySQL不懂,-_-!
不过貌似没有绝对最好的方法,必须根据表结构、字段类型、数据量等具体情况制定优化策略。

解决方案 »

  1.   

    select *from tabel limited <10
    来读出数据,
    页面也不可能显示出几千万条出来的
      

  2.   

    好像在mysql 5.n之后加入了分表功能什么的。对查询会有效多。没有尝试过。也不知道是不是。:-)
      

  3.   

    数据库永远都是有瓶颈的,而且排序非常慢,我做的词典搜索,记录才2,300百万,已经很慢了。最好的解决方法是用全文检索,开源代码有Lucense,非常优秀的全文检索,不过是用java写的,PHP也可以调用。全文检索不会随着记录的增加而变慢。
      

  4.   

    http://smartdict.cn/common.php?lang=cn
    这个页面我用了很简单的SELECT * FROM xxx ORDER BY xxx LIMIT 20
    花费时间是好几秒,你看到的10几毫秒是经过缓存的结果。
    除了缓存没有什么特别好的优化方案。
      

  5.   

    1:软的:针对不同的数据库应用对数据库进行合理的分割,索引,或者进行分布式处理.
    2:硬的:增加硬件投入,着力处理IO瓶颈,例如做集群.如果涉及到全文搜索,通用的做法是进行倒排索引,用C/C++ 或者Java开发底层查询,索引,缓存 接口.PHP只负责表现层.
      

  6.   

    索引,分区,分表,使用存储过程
    建议使用mysql5,可以实现上面的所有功能
      

  7.   

    楼主发错地方了,应该去数据库的版面发的,况且怎么提高搜索效率是DBA的工作,而程序员只是负责写出查询的sql语句编程就可以了。
      

  8.   

    我以前也是遇到需要优化性能的问题,以下是我的一点心得: 
    1.调研查询需求,列出需要查询的方式。
    2.根据查询方式,设计索引。(有些时候需要确认表结构是否合理,是否需要重新设计表结构)。我以前有一个Java程序,我分析得出的结论是瓶颈在数据库查询的性能上,它花费了整个过程的95%的时间,所以针对这个查询(主要是看where子句里的查询条件,如果使用Oracle 数据库,它有一个explain plan工具,可以用来分析你的查询是怎么执行的),在数据库中建了索引,性能由前边的61秒减少到2-3秒钟。
    3.对于实时查询,尽量使用精确的查询条件。即使有一千万条数据,通常不需要一次全部提取出来。
    4.对于需要提取大量数据进行计算(比如:统计报表),考虑设计一个结果表,在晚上或者固定的时间计算,然后把结果保存到这个结果表中。
      

  9.   

    分库,分表。一般来说,mysql超过50w纪录性能就有数量级的下降。
      

  10.   

    mysql的分区还不完善,而且对索引有影响
      

  11.   

    汗。。千万条记录,千万别用MYSQL搜索了,速度N慢,我80万条的速度已经很慢了,用Lucene,它是java的,但可以php调用(好象有被改写过,忘了),你去官方看看
    http://lucene.apache.org
      

  12.   

    KW条不分页显,IE肯定死,打都打不开,分库可选 的,可以考虑用C/C++来查询缓存结果,PHP只负责显示就行
      

  13.   

    http://community.csdn.net/Expert/topic/5499/5499371.xml?temp=.247265楼主根本没提分页,人家要的是查询速度;把索引跟数据分开吧,索引的表最好只有两个字段,一个是id号,另一个是名称
    查询时只查名称就应该行了我的数据库总表有700万条数据库,名称的有200多万,查询速度在1秒内
    http://www.mistruster.com/others/chinese.php