浏览代码

added indexes on the virtual alias tables

When you're hosting a couple of hundred aliases, you will benefit.
It seems safer to create the index and deal with the slight overhead
for just a couple of records, as opposed to not having these
indexes and deal with serious performance issues if you have
lots of aliases on the machine.
Joost Baaij 11 年前
父节点
当前提交
b5bf654181
共有 1 个文件被更改,包括 6 次插入0 次删除
  1. 6
    0
      roles/mailserver/templates/mailserver.sql.j2

+ 6
- 0
roles/mailserver/templates/mailserver.sql.j2 查看文件

10
 	PRIMARY KEY (`id`)
10
 	PRIMARY KEY (`id`)
11
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
11
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
12
 
12
 
13
+CREATE UNIQUE INDEX name_idx ON virtual_domains (name);
14
+
13
 CREATE TABLE IF NOT EXISTS `virtual_users` (
15
 CREATE TABLE IF NOT EXISTS `virtual_users` (
14
 	`id` int(11) NOT NULL auto_increment,
16
 	`id` int(11) NOT NULL auto_increment,
15
 	`domain_id` int(11) NOT NULL,
17
 	`domain_id` int(11) NOT NULL,
20
 	FOREIGN KEY (domain_id) REFERENCES virtual_domains(id) ON DELETE CASCADE
22
 	FOREIGN KEY (domain_id) REFERENCES virtual_domains(id) ON DELETE CASCADE
21
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
23
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
22
 
24
 
25
+CREATE UNIQUE INDEX email_idx ON virtual_users (email);
26
+
23
 CREATE TABLE IF NOT EXISTS `virtual_aliases` (
27
 CREATE TABLE IF NOT EXISTS `virtual_aliases` (
24
 	`id` int(11) NOT NULL auto_increment,
28
 	`id` int(11) NOT NULL auto_increment,
25
 	`domain_id` int(11) NOT NULL,
29
 	`domain_id` int(11) NOT NULL,
29
 	FOREIGN KEY (domain_id) REFERENCES virtual_domains(id) ON DELETE CASCADE
33
 	FOREIGN KEY (domain_id) REFERENCES virtual_domains(id) ON DELETE CASCADE
30
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
34
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
31
 
35
 
36
+CREATE INDEX source_idx ON virtual_aliases (source);
37
+
32
 {% for virtual_domain in mail_virtual_domains %}
38
 {% for virtual_domain in mail_virtual_domains %}
33
 INSERT INTO {{ mail_mysql_database }}.`virtual_domains` (`id`, `name`)
39
 INSERT INTO {{ mail_mysql_database }}.`virtual_domains` (`id`, `name`)
34
         VALUES ('{{ virtual_domain.pk_id }}', '{{ virtual_domain.name }}');
40
         VALUES ('{{ virtual_domain.pk_id }}', '{{ virtual_domain.name }}');

正在加载...
取消
保存