一次BIND DLZ服务器的调优

公司需要建立个非传统的DNS服务器,目前的数据已经1000W+,如果业务发展OK,后续可能会爆炸式增长。

采用的是BIND DLZ+MYSQL,因为是第一次安装此类型服务器,所有配置都是按照网上教程配置,

为host建立了索引,同时还建立了分区存储,按理说1000W+的数据查询应该很快,在数据库中直接查询也是非常快。但是测试DNS返回一般要3S以致更多。


跑到官网http://bind-dlz.sourceforge.net/mysql_driver.html上一条一条看了下:

Fourth line: {select zone from dns_records where zone = '%zone%'}

This query is used by findzone() in the MySQL driver.

一想不对啊,目前1000W+数据都是一个zone的,那不是要取出1000W+数据,当然慢了,于是故意敲错zone,2MS就返回了!!

于是新建一个表:

CREATE TABLE `supported_zone` (
  `id` int(5) NOT NULL AUTO_INCREMENT,
  `zone` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;

在表supported_zone中加入zone数据

将named.conf中的上述语句修改为:

{select zone from supported_zone where zone = '$zone$'}

于是瞬间秒回了:

;; Query time: 2 msec

当然给dns_records表建立索引{select zone from dns_records where zone = '%zone%' limit 1}等方法应该也有用。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值