哈哈哈哈哈哈哈哈哈,终于解决了大富翁一个烦人的性能问题。 (100分)

S

soul

Unregistered / Unconfirmed
GUEST, unregistred user!
长久以来,大富翁的翻页始终很累,我亦非常之痛苦。
于是有各种思路盘旋在我心中,核心的想法就是如何直接定位一个页第一个记录。
于是有yysun弄出3个存储过程,一举使得大富翁得到了第一次提速,可以数据库太大了,
终于还是越来越慢,特别翻页到大号码的时候,出现的只是空白。
究竟是什么因素导致了大富翁如此之慢呢?
我终于开始研习查询分析器,仔细学习如何优化查询,结果发现,大富翁代码中很多语句
有类似select * from letters where parent=0 and status<2 order by datetime desc
的句法,而差sql在查询计划中有是一个占有绝大多数时间的where,也就是只能一个一个
匹配,而不能直接seek,那么一定问题出在索引上,经过仔细思考,加上了索引
(parent,datetime,status)这么一个索引,在查看查询计划,发现变成了scan,seek,
执行之,哇,本来2000ms一下子变成了50ms,吾不禁狂喜。
当然这只是优化的一部分,存储过程中一些关键sql我也更换成了更高效的语句,效果
非常只好。
原来不用改代码,只要加加索引,修改一下sql就可以成百上千倍的增加性能啊。
 
支持,up一下
 
支持,up一下!
 
优化SQL语句的主要办法就是添加适当的索引,特别是小型数据库,SQL自动优化能力差.
提个建议:能否对大富翁的问题库增加个自动结束功能,比如6个月以上此问题还没有解决
则自动结束,没人答则分数返回给提问者,有人答则将分数的一半给解答者.
这样做的话可以大大减少问题库,提高效率.
 
多谢了,以前经常看着空白的页面发呆,现在好多了[:)]
 
好啊,zhtx的意见真的可以考虑哦,不过能自动删除垃圾帖最好,我开delphibbs.chm时好慢,280mb
的东东,真头痛!!!!!!
 
查询优化,我应该好好学习
 
果然是大侠呀
 
给点分,庆祝一下!
 
可以在已经结束的贴子上加以优化.将一些垃圾贴贴掉..

比如将那些
UP

gz
...

等等这些贴子删掉,这些贴子数量不少,也占查询的时间.
 
数据库优化是一门艺术
 
今天来就感到速度的提高,原来是有改动,真是不错,太好了!
 
怪不得爽了,
 
我要是有这个机会,我一定好好努力!再提一下 哈哈!
 
其实这是数据库编程的一个基本要求吧? 所有 频繁使用的/组合查询多的字段,都应该
在上面建立索引。 没有建索引就查询,小数据量还行,数据多了不可想象。

 
谢谢soul的贡献。
不过dfw早点有人分析一下这个问题就好了。
 
顶部