40 个解决方案
#1
索引加加好千万条数据还是很快的
#2
但是数据还是要增加,请教长久之计
#3
MySQL不懂,-_-!
不过貌似没有绝对最好的方法,必须根据表结构、字段类型、数据量等具体情况制定优化策略。
不过貌似没有绝对最好的方法,必须根据表结构、字段类型、数据量等具体情况制定优化策略。
#4
千万条如何优化也不会很快
#5
1.搞个缓存.实时性不是很高的话.
2.加索引...
2.加索引...
#6
索引,你自己小试下,光说没用
#7
分页啊分页
#8
select *from tabel limited <10
来读出数据,
页面也不可能显示出几千万条出来的
来读出数据,
页面也不可能显示出几千万条出来的
#9
1、加适当的索引
2、分表
2、分表
#10
再怎么多的数据,你一页显示,也就是这么几十条,仔细建好索引是必要的.
但还有一点,数据尽可能不要以文本形式存入表.打个比方说性别字段,你当然可以将'男','女'存入表中,但这样查询时的效果比你用1,0存入表中效果来的慢许多(条数越多越明显)
但还有一点,数据尽可能不要以文本形式存入表.打个比方说性别字段,你当然可以将'男','女'存入表中,但这样查询时的效果比你用1,0存入表中效果来的慢许多(条数越多越明显)
#11
顶起来继续听听大家的意见.
#12
好像在mysql 5.n之后加入了分表功能什么的。对查询会有效多。没有尝试过。也不知道是不是。:-)
#13
数据库永远都是有瓶颈的,而且排序非常慢,我做的词典搜索,记录才2,300百万,已经很慢了。最好的解决方法是用全文检索,开源代码有Lucense,非常优秀的全文检索,不过是用java写的,PHP也可以调用。全文检索不会随着记录的增加而变慢。
#14
http://smartdict.cn/common.php?lang=cn
这个页面我用了很简单的SELECT * FROM xxx ORDER BY xxx LIMIT 20
花费时间是好几秒,你看到的10几毫秒是经过缓存的结果。
除了缓存没有什么特别好的优化方案。
这个页面我用了很简单的SELECT * FROM xxx ORDER BY xxx LIMIT 20
花费时间是好几秒,你看到的10几毫秒是经过缓存的结果。
除了缓存没有什么特别好的优化方案。
#15
留个记号学习
#16
顶起来,榨干各位高手的脑细胞~^_^
#17
分页技术是一定要的,不然真的在书库庞大的时候,部分也,检索起来,非常困难了。
还有就是进行程序分类,在查询之前,就对搜索的内容进行预处理,这样绝对会降低数据库的消耗的!
最后的办法就是前面有人提到的全文搜索了。不过全文搜索也有全文搜索的问题……
还有就是进行程序分类,在查询之前,就对搜索的内容进行预处理,这样绝对会降低数据库的消耗的!
最后的办法就是前面有人提到的全文搜索了。不过全文搜索也有全文搜索的问题……
#18
分表吧。
#19
1:软的:针对不同的数据库应用对数据库进行合理的分割,索引,或者进行分布式处理.
2:硬的:增加硬件投入,着力处理IO瓶颈,例如做集群.
如果涉及到全文搜索,通用的做法是进行倒排索引,用C/C++ 或者Java开发底层查询,索引,缓存 接口.
PHP只负责表现层.
2:硬的:增加硬件投入,着力处理IO瓶颈,例如做集群.
如果涉及到全文搜索,通用的做法是进行倒排索引,用C/C++ 或者Java开发底层查询,索引,缓存 接口.
PHP只负责表现层.
#20
补充一个,把数据库都尽可能的装载的内存中进行处理.别吝啬你的内存.
#21
索引,分区,分表,使用存储过程
建议使用mysql5,可以实现上面的所有功能
建议使用mysql5,可以实现上面的所有功能
#22
倒排索引做不到.
#23
1:建立索引
2:全文索引
3:分词技术
4:硬件。
2:全文索引
3:分词技术
4:硬件。
#24
楼主发错地方了,应该去数据库的版面发的,况且怎么提高搜索效率是DBA的工作,而程序员只是负责写出查询的sql语句编程就可以了。
#25
我以前也是遇到需要优化性能的问题,以下是我的一点心得:
1.调研查询需求,列出需要查询的方式。
2.根据查询方式,设计索引。(有些时候需要确认表结构是否合理,是否需要重新设计表结构)。我以前有一个Java程序,我分析得出的结论是瓶颈在数据库查询的性能上,它花费了整个过程的95%的时间,所以针对这个查询(主要是看where子句里的查询条件,如果使用Oracle 数据库,它有一个explain plan工具,可以用来分析你的查询是怎么执行的),在数据库中建了索引,性能由前边的61秒减少到2-3秒钟。
3.对于实时查询,尽量使用精确的查询条件。即使有一千万条数据,通常不需要一次全部提取出来。
4.对于需要提取大量数据进行计算(比如:统计报表),考虑设计一个结果表,在晚上或者固定的时间计算,然后把结果保存到这个结果表中。
1.调研查询需求,列出需要查询的方式。
2.根据查询方式,设计索引。(有些时候需要确认表结构是否合理,是否需要重新设计表结构)。我以前有一个Java程序,我分析得出的结论是瓶颈在数据库查询的性能上,它花费了整个过程的95%的时间,所以针对这个查询(主要是看where子句里的查询条件,如果使用Oracle 数据库,它有一个explain plan工具,可以用来分析你的查询是怎么执行的),在数据库中建了索引,性能由前边的61秒减少到2-3秒钟。
3.对于实时查询,尽量使用精确的查询条件。即使有一千万条数据,通常不需要一次全部提取出来。
4.对于需要提取大量数据进行计算(比如:统计报表),考虑设计一个结果表,在晚上或者固定的时间计算,然后把结果保存到这个结果表中。
#26
分库,分表。一般来说,mysql超过50w纪录性能就有数量级的下降。
#27
mysql的分区还不完善,而且对索引有影响
#28
也遇到同样的问题,,,不知道如何解决。。一起学习。。。
分库、分表是什么意思???
分库、分表是什么意思???
#29
因为做的是统计汇总。。所以最后的结果需要以一张表格的形式显示出来,所以没办法分页。。。
不知道具体能怎么解决
不知道具体能怎么解决
#30
能不能分页想都不用想肯定是可以的,这是常识问题。现在哪个上千万的记录不分页的?显示在电脑上也是一屏一屏的,打印到纸上也是一张一张的,这都是分页概念。
#31
越来越激烈了。
#32
你做统计需要同时用那千百万条数据?
#33
汗。。
千万条记录,千万别用MYSQL搜索了,速度N慢,我80万条的速度已经很慢了,用Lucene,它是java的,但可以php调用(好象有被改写过,忘了),你去官方看看
http://lucene.apache.org
千万条记录,千万别用MYSQL搜索了,速度N慢,我80万条的速度已经很慢了,用Lucene,它是java的,但可以php调用(好象有被改写过,忘了),你去官方看看
http://lucene.apache.org
#34
KW条不分页显,IE肯定死,打都打不开,分库可选 的,可以考虑用C/C++来查询缓存结果,PHP只负责显示就行
#35
http://community.csdn.net/Expert/topic/5499/5499371.xml?temp=.247265
楼主根本没提分页,人家要的是查询速度;
把索引跟数据分开吧,索引的表最好只有两个字段,一个是id号,另一个是名称
查询时只查名称就应该行了
我的数据库总表有700万条数据库,名称的有200多万,查询速度在1秒内
http://www.mistruster.com/others/chinese.php
楼主根本没提分页,人家要的是查询速度;
把索引跟数据分开吧,索引的表最好只有两个字段,一个是id号,另一个是名称
查询时只查名称就应该行了
我的数据库总表有700万条数据库,名称的有200多万,查询速度在1秒内
http://www.mistruster.com/others/chinese.php
#36
关键是建立索引字段,应该按类型和属性进行分类建立,例如帮人家超时商品做数据查询一样,你越分类细的话(索引),查询的时间也不会长。
#37
学习下,希望各位高手多说些经验。我优化基本上是0
#38
一般要做到的.只是建好索引.而内部的一些细节,自有数据库设计提供商去想办法...
建立好合理的索引.一般都可以的...
如果是全文检索的话,,,,这个就不太好说了.....
建立好合理的索引.一般都可以的...
如果是全文检索的话,,,,这个就不太好说了.....
#39
1,分表,
2,将大字段分离出去(写文件即可)
3,合理建立索引
2,将大字段分离出去(写文件即可)
3,合理建立索引
#40
remark
#1
索引加加好千万条数据还是很快的
#2
但是数据还是要增加,请教长久之计
#3
MySQL不懂,-_-!
不过貌似没有绝对最好的方法,必须根据表结构、字段类型、数据量等具体情况制定优化策略。
不过貌似没有绝对最好的方法,必须根据表结构、字段类型、数据量等具体情况制定优化策略。
#4
千万条如何优化也不会很快
#5
1.搞个缓存.实时性不是很高的话.
2.加索引...
2.加索引...
#6
索引,你自己小试下,光说没用
#7
分页啊分页
#8
select *from tabel limited <10
来读出数据,
页面也不可能显示出几千万条出来的
来读出数据,
页面也不可能显示出几千万条出来的
#9
1、加适当的索引
2、分表
2、分表
#10
再怎么多的数据,你一页显示,也就是这么几十条,仔细建好索引是必要的.
但还有一点,数据尽可能不要以文本形式存入表.打个比方说性别字段,你当然可以将'男','女'存入表中,但这样查询时的效果比你用1,0存入表中效果来的慢许多(条数越多越明显)
但还有一点,数据尽可能不要以文本形式存入表.打个比方说性别字段,你当然可以将'男','女'存入表中,但这样查询时的效果比你用1,0存入表中效果来的慢许多(条数越多越明显)
#11
顶起来继续听听大家的意见.
#12
好像在mysql 5.n之后加入了分表功能什么的。对查询会有效多。没有尝试过。也不知道是不是。:-)
#13
数据库永远都是有瓶颈的,而且排序非常慢,我做的词典搜索,记录才2,300百万,已经很慢了。最好的解决方法是用全文检索,开源代码有Lucense,非常优秀的全文检索,不过是用java写的,PHP也可以调用。全文检索不会随着记录的增加而变慢。
#14
http://smartdict.cn/common.php?lang=cn
这个页面我用了很简单的SELECT * FROM xxx ORDER BY xxx LIMIT 20
花费时间是好几秒,你看到的10几毫秒是经过缓存的结果。
除了缓存没有什么特别好的优化方案。
这个页面我用了很简单的SELECT * FROM xxx ORDER BY xxx LIMIT 20
花费时间是好几秒,你看到的10几毫秒是经过缓存的结果。
除了缓存没有什么特别好的优化方案。
#15
留个记号学习
#16
顶起来,榨干各位高手的脑细胞~^_^
#17
分页技术是一定要的,不然真的在书库庞大的时候,部分也,检索起来,非常困难了。
还有就是进行程序分类,在查询之前,就对搜索的内容进行预处理,这样绝对会降低数据库的消耗的!
最后的办法就是前面有人提到的全文搜索了。不过全文搜索也有全文搜索的问题……
还有就是进行程序分类,在查询之前,就对搜索的内容进行预处理,这样绝对会降低数据库的消耗的!
最后的办法就是前面有人提到的全文搜索了。不过全文搜索也有全文搜索的问题……
#18
分表吧。
#19
1:软的:针对不同的数据库应用对数据库进行合理的分割,索引,或者进行分布式处理.
2:硬的:增加硬件投入,着力处理IO瓶颈,例如做集群.
如果涉及到全文搜索,通用的做法是进行倒排索引,用C/C++ 或者Java开发底层查询,索引,缓存 接口.
PHP只负责表现层.
2:硬的:增加硬件投入,着力处理IO瓶颈,例如做集群.
如果涉及到全文搜索,通用的做法是进行倒排索引,用C/C++ 或者Java开发底层查询,索引,缓存 接口.
PHP只负责表现层.
#20
补充一个,把数据库都尽可能的装载的内存中进行处理.别吝啬你的内存.
#21
索引,分区,分表,使用存储过程
建议使用mysql5,可以实现上面的所有功能
建议使用mysql5,可以实现上面的所有功能
#22
倒排索引做不到.
#23
1:建立索引
2:全文索引
3:分词技术
4:硬件。
2:全文索引
3:分词技术
4:硬件。
#24
楼主发错地方了,应该去数据库的版面发的,况且怎么提高搜索效率是DBA的工作,而程序员只是负责写出查询的sql语句编程就可以了。
#25
我以前也是遇到需要优化性能的问题,以下是我的一点心得:
1.调研查询需求,列出需要查询的方式。
2.根据查询方式,设计索引。(有些时候需要确认表结构是否合理,是否需要重新设计表结构)。我以前有一个Java程序,我分析得出的结论是瓶颈在数据库查询的性能上,它花费了整个过程的95%的时间,所以针对这个查询(主要是看where子句里的查询条件,如果使用Oracle 数据库,它有一个explain plan工具,可以用来分析你的查询是怎么执行的),在数据库中建了索引,性能由前边的61秒减少到2-3秒钟。
3.对于实时查询,尽量使用精确的查询条件。即使有一千万条数据,通常不需要一次全部提取出来。
4.对于需要提取大量数据进行计算(比如:统计报表),考虑设计一个结果表,在晚上或者固定的时间计算,然后把结果保存到这个结果表中。
1.调研查询需求,列出需要查询的方式。
2.根据查询方式,设计索引。(有些时候需要确认表结构是否合理,是否需要重新设计表结构)。我以前有一个Java程序,我分析得出的结论是瓶颈在数据库查询的性能上,它花费了整个过程的95%的时间,所以针对这个查询(主要是看where子句里的查询条件,如果使用Oracle 数据库,它有一个explain plan工具,可以用来分析你的查询是怎么执行的),在数据库中建了索引,性能由前边的61秒减少到2-3秒钟。
3.对于实时查询,尽量使用精确的查询条件。即使有一千万条数据,通常不需要一次全部提取出来。
4.对于需要提取大量数据进行计算(比如:统计报表),考虑设计一个结果表,在晚上或者固定的时间计算,然后把结果保存到这个结果表中。
#26
分库,分表。一般来说,mysql超过50w纪录性能就有数量级的下降。
#27
mysql的分区还不完善,而且对索引有影响
#28
也遇到同样的问题,,,不知道如何解决。。一起学习。。。
分库、分表是什么意思???
分库、分表是什么意思???
#29
因为做的是统计汇总。。所以最后的结果需要以一张表格的形式显示出来,所以没办法分页。。。
不知道具体能怎么解决
不知道具体能怎么解决
#30
能不能分页想都不用想肯定是可以的,这是常识问题。现在哪个上千万的记录不分页的?显示在电脑上也是一屏一屏的,打印到纸上也是一张一张的,这都是分页概念。
#31
越来越激烈了。
#32
你做统计需要同时用那千百万条数据?
#33
汗。。
千万条记录,千万别用MYSQL搜索了,速度N慢,我80万条的速度已经很慢了,用Lucene,它是java的,但可以php调用(好象有被改写过,忘了),你去官方看看
http://lucene.apache.org
千万条记录,千万别用MYSQL搜索了,速度N慢,我80万条的速度已经很慢了,用Lucene,它是java的,但可以php调用(好象有被改写过,忘了),你去官方看看
http://lucene.apache.org
#34
KW条不分页显,IE肯定死,打都打不开,分库可选 的,可以考虑用C/C++来查询缓存结果,PHP只负责显示就行
#35
http://community.csdn.net/Expert/topic/5499/5499371.xml?temp=.247265
楼主根本没提分页,人家要的是查询速度;
把索引跟数据分开吧,索引的表最好只有两个字段,一个是id号,另一个是名称
查询时只查名称就应该行了
我的数据库总表有700万条数据库,名称的有200多万,查询速度在1秒内
http://www.mistruster.com/others/chinese.php
楼主根本没提分页,人家要的是查询速度;
把索引跟数据分开吧,索引的表最好只有两个字段,一个是id号,另一个是名称
查询时只查名称就应该行了
我的数据库总表有700万条数据库,名称的有200多万,查询速度在1秒内
http://www.mistruster.com/others/chinese.php
#36
关键是建立索引字段,应该按类型和属性进行分类建立,例如帮人家超时商品做数据查询一样,你越分类细的话(索引),查询的时间也不会长。
#37
学习下,希望各位高手多说些经验。我优化基本上是0
#38
一般要做到的.只是建好索引.而内部的一些细节,自有数据库设计提供商去想办法...
建立好合理的索引.一般都可以的...
如果是全文检索的话,,,,这个就不太好说了.....
建立好合理的索引.一般都可以的...
如果是全文检索的话,,,,这个就不太好说了.....
#39
1,分表,
2,将大字段分离出去(写文件即可)
3,合理建立索引
2,将大字段分离出去(写文件即可)
3,合理建立索引
#40
remark