新微赢技术网

标题: 有关网站的数据库方面的优化 [打印本页]

作者: 导演    时间: 2008-12-18 02:13
标题: 有关网站的数据库方面的优化
今天要说的网站的优化是指数据库方面的, 网站运行的快慢, 数据库是一个比较重要的方面, 特别
是对于大数据量的网站来说。
    今年年初准备做一个有关博客收集的网站,于是在汇网——双线主机网
(http://www.shuangxian.com)买了一个空间,因为是双线的空间,一开始的时候速度是相当的快,但
在运行两个月之后,逐渐感到速度降下来了,难道空间不稳定了?于是我找客服提出了我的问题,后来
在耐思尼克的技术部的检查下,通知我说是因为我的数据库的数据量太大了,查询的sql语句也不够优化
,原来查询只需要几毫秒的,因为数据变多而变成了几秒了,所以才会导致网站的速度下降。
  汇网双线主机网给我的答复主要有以下几个方面:  
    1、文章的主体内容不应该放在数据库表中
    2、应该在适当的表的字段给予建索引  
    3、优化查询的SQL语句  
    4、去掉不必要的SQL查询  
  
    于是我去网上狂搜索有关数据库优化的文章。因为我网站就是每天去抓取各大博客网站的一些文章
,所以日积月累也有上10万篇的文章了。我把article表里装载的文章内容提取出来,放在空间文件夹中
,作为一篇文章一个文件这样,在需要读取文章的时候才去读文件。当然这里就要牺牲了搜索全文的功

能了。接着我在程序里把每一个sql的执行都记录下来,发现执行最多的是类似这样的一条语句select *
from article  where tag like '%体育%',这个消耗时间相当高,于是把tag提取出来做一个单独的
tags表,于是查询变成 select a.* from article a,tags t wherea.IDAritle=t.fIDAritle and
t.name='体育'。(关于tag就不详细说了,本来有关这个tag就已经可以说一篇文章了)接着我在
article表的字段athor,fromurl等上建立索引。
    原来查询要消耗几秒钟的SQL语句,一下子就减少到了0.001秒以下了。这里要谢谢双线客服对于我
的问题的提出的解决方案,也让我认识到原来做海量数据的网站,数据库原来是这么重要的,希望各位
网友也能从中了解到一点。
作者: 鸥飞007    时间: 2009-11-24 01:05
楼主,你写得实在是太好了。我惟一能做的,就只有把这个帖子顶上去这件事了




欢迎光临 新微赢技术网 (http://bbs.weiying.cn/) Powered by Discuz! X3.2