我们采用了直接建表方式搭建Drupal网站后,我记录了一篇《Drupal网站Views生成页面的XML网站地图构建》,这个办法很通用,一般都没有问题,只是在少量情况下可能需要修改MySQL查询语句,例如当数据量很大(如果超过100万条记录)的时候,SQL语句执行时间很长,容易造成RDS云服务器卡死。
陆续发现过几种情况,也采取措施解决了,但忘记记录博客了。今天再次发生一个站sitemap被爬堵住,导致整台数据库服务器卡住的情况,用下面办法解决,记录下来。
SELECT DISTINCT person FROM gongshang limit 10000 offset 1000000;
上面的语句执行起来大约需要12秒,person字段创建有索引,也不快。
增加person这个字段的排序测试,语句如下:
SELECT DISTINCT person FROM gongshang order by person limit 10000 offset 1000000;
运行起来速度大幅提高,只需要大约1秒,速度提升10倍以上,不会再堵了。
不过我们试验发现这个办法只适用于加了索引的字段,不适用于主键。
评论