+ -
当前位置:首页 → 问答吧 → 请教:如何提高大数据库查询的效率?

请教:如何提高大数据库查询的效率?

时间:2011-05-24

来源:互联网

好像记得以前看到过类似的文章,不过当时由于没接触到大型数据库,所以没有仔细研究过,现在有机会接触到了,特来请教各位。
一个email表,一年时间不到,邮件记录达到了15万条+,而且每天还在不断增加。暂且先不管这套系统的问题,我自己用PHP查询数据库,语句“select * from email where from_id="sfrost" order by sent_date desc limit 0,30",该语句的执行时间从我按F5刷新到页面显示出结果,大概时间在8秒+,这个效率是不是太低了点?
还有就是该表在phpmyadmin中看到的大小为160MB左右,多余项有30MB+,这是个什么情况?
而且这套系统的所有表中的日期字段类型都是datetime,并且后面都是设置了格式的,想请教一下为什么不把日期设为INT类型?INT类型在计算的时候不是方便多了吗?datetime和int在执行效率或存储方面有什么不同或影响没?

对于大型数据库,我还是个很初级的新手,很多东西都不是很了解,希望各位能给出一些有意义的建议,先谢谢了!

作者: sfrost   发布时间: 2011-05-24

多余项有30MB+
就优化一下,phpmyadmin有直接的操作方式:优化
日期当然是int类型好啊。你说的为什么,估计得问系统开发人员了。

作者: kuhanzhu   发布时间: 2011-05-24


我觉得INT比datetime好处有很多,比如说存储的容量,INT就11字节,而datetime我数了哈,是29个字节;另外,INT不管是在计算,还是在表现方面,都比datetime灵活多了,应该是这样的吧?
优化这个我点了,呆会去看看这命令具体作了什么。但是能告诉我查询慢这个解决办法吗?现在就是连如何下手解决这个问题的思路都没有。
而且现在有一个新的问题:数据库的编码是gbk_chinese_ci,在phpmyadmin里面能正常显示,但是通过PHP页面调出来后就乱码了,PHP页面的编码是GB2312,浏览器显示的编码也是GB2312?什么情况这是?

作者: sfrost   发布时间: 2011-05-24

查询每一年某月某日某时段之间的信息呢?

作者: ariex   发布时间: 2011-05-24

相关阅读 更多