解析大型站点是如何通过对数据库索优化解决网站性能提升SEO效果
SEO资讯 2019-04-14 16:00:03 字数:3637

网站性能对网站的影响在前一篇文章: 网站响应速度对SEO的影响分析 中已经有介绍过,而对于性能优化也有很多种:网站前端代码优化、文件压缩等,不过这些都不是影响性能最大的因素,在排除硬件之外能够对网站性能造成最大影响的还是数据库的性能优化,特别是对于大型网站,数据库的优化非常重要,一个简单的优化可以让性能重升几百上千倍。

数据库性能的优化又有好几种方式,这里简单分享下昨天在对网站做性能优化时征对索引和SQL语句的一个优化案例:

简单介绍下网站:英文站,在2013年5月27号正式上线,域名、空间都是全新的。到目前一个多月的时间数据量在60万左右(由于前期数据操作失误一下子上传超过10万)。到目前为止Google 收录1o万以上(网站上线后收录达到10万左右时修改过两次Title 所以收录掉过一段时间,现在慢慢的在恢复,下一篇文章将对网站的数据更新量和Title的修改对网站SEO的影响进行数据分享),平均每天抓取2-3万数据。

之所以分析这该站的性能主要是最近几天网站的性能直线下降,网页打开越来越慢,抓取量也在下降,因此昨天重新检测了下其中一个页面的数据,该页面数据加载完毕一共需要执行3条SQL语句,涉及3张表,其中有两条的CPU占用时间、逻辑读取数非常的大,因此对这两条数据进行了优化,下面是其中一条SQL语句的优化前后的对比:

解析大型站点是如何通过对数据库索优化解决网站性能提升SEO效果

数据库性能优化对SEO的影响

可以看到,优化后这一点性能提升了100多倍,而这其中只是修改了数据库的一个索引,由于前期数据量少,对索引性要求不高,当数据达到十万以上后索引优化尤其重要了。当然,不同的网站不同的数据结构和业务要求,对索引的立在细节上是不一样的,所以这里对索引的调整和优化不做过多的分享。如下分享下优化后,网站页面检测工具检测出的页面响应时间对比基本上和该数据库优化所提升的性能一至:

解析大型站点是如何通过对数据库索优化解决网站性能提升SEO效果

网站性能优化

该文章主要是分享下数据库性能优化对网站SEO优化上的一个数据对比,让大家在注重网站外围SEO时,同时也要重视网站的性能,630ms 和238ms 用户是看不出来的,但是这400ms的差距对蜘蛛抓取的影响是非常巨大的,这里做个简单的计算:

抓取量 = 爬虫总的停留时间 ÷ 单个页面的停留时间(国平老师培训时所说),在不考虑总停留时间的情况下,可以通过降低单个页面的停留时间来提升网站的抓取量,而每个页面的影响时间速度的提升就可以降低单个页面的响应时间:

这里简单的将网页加载时间做为面页面停留时间做个计算(当然页面加载时间和蜘蛛在页面上的停留时间是两个不同的概念,这里只是做个简单的计算):

假如蜘蛛在网站上的总停留时间10小时,每个页面的响应时间是600ms,那么一天能抓取的页面为(排除其它因素):

优化前:10(h)*60(m)*60(s)*1000/600=60000

优化后: 180000

6万和18万的抓取差距对于一个站的优化来说是非常巨大的,当然这只是理想的数据,影响抓取的还有其它因素,这个数据只是个参考。

所以当一个网站的性能受影响时抓取就会不理想,收录就会受到一定的影响,收录受影响进而就会影响网站的SEO流量。因此对于做SEO的人来说应经常通过一些工具来关注网站的性能。

0人参与回答
  • 未添加任何数据~~


提示信息

联系电话:
1585150508*
QQ交谈:
小编
站长微信:
站长邮箱: service@qingjiuzhubei.com
177.86msRequest Duration2MBMemory UsageGET zixun/detail/{id?}.htmlRouteAuth status
    • Booting (17.35ms)
    • Application (164.14ms)
      6 templates were rendered
      • site.zixun.detail (resources/views/site/zixun/detail.blade.php)8blade
        Params
        0
        prevArticle
        1
        nextArticle
        2
        newDetail
        3
        comment
        4
        hotnews
        5
        t
        6
        d
        7
        k
      • layouts.site.layout (resources/views/layouts/site/layout.blade.php)18blade
        Params
        0
        obLevel
        1
        __env
        2
        app
        3
        device
        4
        isMobile
        5
        errors
        6
        prevArticle
        7
        nextArticle
        8
        newDetail
        9
        comment
        10
        hotnews
        11
        t
        12
        d
        13
        k
        14
        __empty_1
        15
        __currentLoopData
        16
        loop
        17
        hotnewsVal
      • layouts.site.top (resources/views/layouts/site/top.blade.php)18blade
        Params
        0
        obLevel
        1
        __env
        2
        app
        3
        device
        4
        isMobile
        5
        errors
        6
        prevArticle
        7
        nextArticle
        8
        newDetail
        9
        comment
        10
        hotnews
        11
        t
        12
        d
        13
        k
        14
        __empty_1
        15
        __currentLoopData
        16
        loop
        17
        hotnewsVal
      • layouts.site.bottom (resources/views/layouts/site/bottom.blade.php)18blade
        Params
        0
        obLevel
        1
        __env
        2
        app
        3
        device
        4
        isMobile
        5
        errors
        6
        prevArticle
        7
        nextArticle
        8
        newDetail
        9
        comment
        10
        hotnews
        11
        t
        12
        d
        13
        k
        14
        __empty_1
        15
        __currentLoopData
        16
        loop
        17
        hotnewsVal
      • common.upgrade_vip (resources/views/common/upgrade_vip.blade.php)18blade
        Params
        0
        obLevel
        1
        __env
        2
        app
        3
        device
        4
        isMobile
        5
        errors
        6
        prevArticle
        7
        nextArticle
        8
        newDetail
        9
        comment
        10
        hotnews
        11
        t
        12
        d
        13
        k
        14
        __empty_1
        15
        __currentLoopData
        16
        loop
        17
        hotnewsVal
      • kefu.kefu (resources/views/kefu/kefu.blade.php)18blade
        Params
        0
        obLevel
        1
        __env
        2
        app
        3
        device
        4
        isMobile
        5
        errors
        6
        prevArticle
        7
        nextArticle
        8
        newDetail
        9
        comment
        10
        hotnews
        11
        t
        12
        d
        13
        k
        14
        __empty_1
        15
        __currentLoopData
        16
        loop
        17
        hotnewsVal
      uri
      GET zixun/detail/{id?}.html
      middleware
      web
      controller
      App\Http\Controllers\Site\ZixunController@detail
      namespace
      App\Http\Controllers
      prefix
      /zixun
      where
      as
      zixunDetail
      file
      app/Http/Controllers/Site/ZixunController.php:105-132
      7 statements were executed150.13ms
      • select * from `news` where `news`.`id` = '36294' and `news`.`deleted_at` is null limit 11.66ms/app/Http/Controllers/Site/ZixunController.php:109zzshuju
        Metadata
        Bindings
        • 0. 36294
        Hints
        • Use SELECT * only if you need all columns from table
        • LIMIT without ORDER BY causes non-deterministic results, depending on the query execution plan
        Backtrace
        • 14. /app/Http/Controllers/Site/ZixunController.php:109
        • 22. /vendor/silber/page-cache/src/Middleware/CacheResponse.php:38
        • 56. /public/index.php:53
      • select * from `new_cates` where `new_cates`.`id` in ('2') and `new_cates`.`deleted_at` is null390μs/app/Http/Controllers/Site/ZixunController.php:109zzshuju
        Metadata
        Bindings
        • 0. 2
        Hints
        • Use SELECT * only if you need all columns from table
        Backtrace
        • 19. /app/Http/Controllers/Site/ZixunController.php:109
        • 27. /vendor/silber/page-cache/src/Middleware/CacheResponse.php:38
        • 61. /public/index.php:53
      • select * from `news` where `news`.`deleted_at` is null order by `browse` desc limit 10140.72ms/app/Http/Controllers/Site/ZixunController.php:110zzshuju
        Metadata
        Hints
        • Use SELECT * only if you need all columns from table
        Backtrace
        • 12. /app/Http/Controllers/Site/ZixunController.php:110
        • 20. /vendor/silber/page-cache/src/Middleware/CacheResponse.php:38
        • 54. /public/index.php:53
      • update `news` set `browse` = `browse` + 1, `updated_at` = '2025-04-05 04:56:12' where `id` = '36294' and `news`.`deleted_at` is null4.94ms/app/Http/Model/News/News.php:170zzshuju
        Metadata
        Bindings
        • 0. 2025-04-05 04:56:12
        • 1. 36294
        Backtrace
        • 12. /app/Http/Model/News/News.php:170
        • 13. /app/Http/Controllers/Site/ZixunController.php:111
        • 21. /vendor/silber/page-cache/src/Middleware/CacheResponse.php:38
        • 55. /public/index.php:53
      • select * from `news` where `id` < '36294' and `newscate_id` = '2' and `news`.`deleted_at` is null order by `id` desc limit 11.02ms/app/Http/Controllers/Site/ZixunController.php:115zzshuju
        Metadata
        Bindings
        • 0. 36294
        • 1. 2
        Hints
        • Use SELECT * only if you need all columns from table
        Backtrace
        • 13. /app/Http/Controllers/Site/ZixunController.php:115
        • 21. /vendor/silber/page-cache/src/Middleware/CacheResponse.php:38
        • 55. /public/index.php:53
      • select * from `news` where `id` > '36294' and `newscate_id` = '2' and `news`.`deleted_at` is null order by `id` asc limit 11.01ms/app/Http/Controllers/Site/ZixunController.php:116zzshuju
        Metadata
        Bindings
        • 0. 36294
        • 1. 2
        Hints
        • Use SELECT * only if you need all columns from table
        Backtrace
        • 13. /app/Http/Controllers/Site/ZixunController.php:116
        • 21. /vendor/silber/page-cache/src/Middleware/CacheResponse.php:38
        • 55. /public/index.php:53
      • select * from `comments` where `news_id` = '36294'390μs/app/Http/Controllers/Site/ZixunController.php:117zzshuju
        Metadata
        Bindings
        • 0. 36294
        Hints
        • Use SELECT * only if you need all columns from table
        Backtrace
        • 12. /app/Http/Controllers/Site/ZixunController.php:117
        • 20. /vendor/silber/page-cache/src/Middleware/CacheResponse.php:38
        • 54. /public/index.php:53
        web
        array:2 [ "name" => "Guest" "user" => array:1 [ "guest" => true ] ]
        api
        array:2 [ "name" => "Guest" "user" => array:1 [ "guest" => true ] ]
          _token
          pZNUGU4WxXITUftwgy6Ejujl1hpKAWU32ATULQop
          _previous
          array:1 [ "url" => "http://data.winndoo.cn/zixun/detail/36294.html" ]
          PHPDEBUGBAR_STACK_DATA
          []
          format
          html
          content_type
          text/html; charset=UTF-8
          status_text
          OK
          status_code
          200
          request_query
          []
          request_request
          []
          request_headers
          array:10 [ "accept-encoding" => array:1 [ 0 => "gzip, deflate" ] "accept" => array:1 [ ...
          request_server
          array:33 [ "USER" => "apache" "HOME" => "/usr/share/httpd" "HTTP_ACCEPT_ENCODING" => "gzip, de...
          request_cookies
          []
          response_headers
          array:5 [ "cache-control" => array:1 [ 0 => "no-cache, private" ] "date" => array:1 [ ...
          path_info
          /zixun/detail/36294.html
          session_attributes
          array:3 [ "_token" => "pZNUGU4WxXITUftwgy6Ejujl1hpKAWU32ATULQop" "_previous" => array:1 [ "u...