请教,千万条记录怎么快速查询出来. MySQL不懂,-_-!不过貌似没有绝对最好的方法,必须根据表结构、字段类型、数据量等具体情况制定优化策略。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 select *from tabel limited <10来读出数据,页面也不可能显示出几千万条出来的 好像在mysql 5.n之后加入了分表功能什么的。对查询会有效多。没有尝试过。也不知道是不是。:-) 数据库永远都是有瓶颈的,而且排序非常慢,我做的词典搜索,记录才2,300百万,已经很慢了。最好的解决方法是用全文检索,开源代码有Lucense,非常优秀的全文检索,不过是用java写的,PHP也可以调用。全文检索不会随着记录的增加而变慢。 http://smartdict.cn/common.php?lang=cn这个页面我用了很简单的SELECT * FROM xxx ORDER BY xxx LIMIT 20花费时间是好几秒,你看到的10几毫秒是经过缓存的结果。除了缓存没有什么特别好的优化方案。 1:软的:针对不同的数据库应用对数据库进行合理的分割,索引,或者进行分布式处理.2:硬的:增加硬件投入,着力处理IO瓶颈,例如做集群.如果涉及到全文搜索,通用的做法是进行倒排索引,用C/C++ 或者Java开发底层查询,索引,缓存 接口.PHP只负责表现层. 索引,分区,分表,使用存储过程建议使用mysql5,可以实现上面的所有功能 楼主发错地方了,应该去数据库的版面发的,况且怎么提高搜索效率是DBA的工作,而程序员只是负责写出查询的sql语句编程就可以了。 我以前也是遇到需要优化性能的问题,以下是我的一点心得: 1.调研查询需求,列出需要查询的方式。2.根据查询方式,设计索引。(有些时候需要确认表结构是否合理,是否需要重新设计表结构)。我以前有一个Java程序,我分析得出的结论是瓶颈在数据库查询的性能上,它花费了整个过程的95%的时间,所以针对这个查询(主要是看where子句里的查询条件,如果使用Oracle 数据库,它有一个explain plan工具,可以用来分析你的查询是怎么执行的),在数据库中建了索引,性能由前边的61秒减少到2-3秒钟。3.对于实时查询,尽量使用精确的查询条件。即使有一千万条数据,通常不需要一次全部提取出来。4.对于需要提取大量数据进行计算(比如:统计报表),考虑设计一个结果表,在晚上或者固定的时间计算,然后把结果保存到这个结果表中。 分库,分表。一般来说,mysql超过50w纪录性能就有数量级的下降。 mysql的分区还不完善,而且对索引有影响 汗。。千万条记录,千万别用MYSQL搜索了,速度N慢,我80万条的速度已经很慢了,用Lucene,它是java的,但可以php调用(好象有被改写过,忘了),你去官方看看http://lucene.apache.org KW条不分页显,IE肯定死,打都打不开,分库可选 的,可以考虑用C/C++来查询缓存结果,PHP只负责显示就行 http://community.csdn.net/Expert/topic/5499/5499371.xml?temp=.247265楼主根本没提分页,人家要的是查询速度;把索引跟数据分开吧,索引的表最好只有两个字段,一个是id号,另一个是名称查询时只查名称就应该行了我的数据库总表有700万条数据库,名称的有200多万,查询速度在1秒内http://www.mistruster.com/others/chinese.php memcached问题 如何判断用户上传了文件? 网站性能监控 什么网站比较好 MYSQL中,三表联合查询,急~~~大哥们帮忙!!! 大家看看的login.php存在漏洞吗? php提交问题 如何搜索出一个表中的数据,并且符合另一个表的条件? 为什么我不能连接到mysql数据库? 一个form有两个submit可以么?。。。。。 session的变量在框架frame中值丢失问题,急!help!!! 关于登录框的问题 大家好,讨论一下php抓取网址,请进来!!!!
来读出数据,
页面也不可能显示出几千万条出来的
这个页面我用了很简单的SELECT * FROM xxx ORDER BY xxx LIMIT 20
花费时间是好几秒,你看到的10几毫秒是经过缓存的结果。
除了缓存没有什么特别好的优化方案。
2:硬的:增加硬件投入,着力处理IO瓶颈,例如做集群.如果涉及到全文搜索,通用的做法是进行倒排索引,用C/C++ 或者Java开发底层查询,索引,缓存 接口.PHP只负责表现层.
建议使用mysql5,可以实现上面的所有功能
1.调研查询需求,列出需要查询的方式。
2.根据查询方式,设计索引。(有些时候需要确认表结构是否合理,是否需要重新设计表结构)。我以前有一个Java程序,我分析得出的结论是瓶颈在数据库查询的性能上,它花费了整个过程的95%的时间,所以针对这个查询(主要是看where子句里的查询条件,如果使用Oracle 数据库,它有一个explain plan工具,可以用来分析你的查询是怎么执行的),在数据库中建了索引,性能由前边的61秒减少到2-3秒钟。
3.对于实时查询,尽量使用精确的查询条件。即使有一千万条数据,通常不需要一次全部提取出来。
4.对于需要提取大量数据进行计算(比如:统计报表),考虑设计一个结果表,在晚上或者固定的时间计算,然后把结果保存到这个结果表中。
http://lucene.apache.org
查询时只查名称就应该行了我的数据库总表有700万条数据库,名称的有200多万,查询速度在1秒内
http://www.mistruster.com/others/chinese.php