summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Changes1
-rw-r--r--Changes.mysql29
-rw-r--r--data/tables.sql332
-rw-r--r--version.log6
4 files changed, 225 insertions, 143 deletions
diff --git a/Changes b/Changes
index ca33890e4..fdef52a3b 100644
--- a/Changes
+++ b/Changes
@@ -36,6 +36,7 @@ Anope Version S V N
08/29 F OperServ SGLINE ADD now strips a trailing space from the mask. [#761]
08/29 F TS6 UID generation for all supported TS6 IRCDs. [#731]
09/01 F Added a note in WIN32.txt about pre-compiled installers [# 00]
+09/02 F Created MySQL indexes to decrease load on the database. [# 00]
Provided by Trystan <trystan@nomadirc.net> - 2007
08/29 F Module runtime directory not always properly cleaned up. [#768]
diff --git a/Changes.mysql b/Changes.mysql
index 7d341dde0..86f040ef0 100644
--- a/Changes.mysql
+++ b/Changes.mysql
@@ -1,6 +1,33 @@
Anope Version S V N
--------------------
-- NONE
+ALTER TABLE `anope_ns_request` DROP INDEX `nick_index` ;
+ALTER TABLE `anope_ns_core` DROP INDEX `display_index` ;
+ALTER TABLE `anope_ns_access` ADD UNIQUE (`display`) ;
+ALTER TABLE `anope_ms_info` ADD UNIQUE (`nm_id` , `serv`) ;
+ALTER TABLE `anope_ns_alias` DROP INDEX `nick_index` ;
+ALTER TABLE `anope_cs_info` DROP INDEX `name_index` ;
+ALTER TABLE `anope_cs_access` ADD UNIQUE (`channel` , `display`) ;
+ALTER TABLE `anope_cs_levels` ADD UNIQUE (`channel` , `position`) ;
+ALTER TABLE `anope_cs_akicks` CHANGE `dmask` `dmask` VARCHAR( 255 ) NOT NULL ;
+ALTER TABLE `anope_cs_akicks` ADD UNIQUE (`channel` , `dmask`) ;
+ALTER TABLE `anope_cs_badwords` CHANGE `word` `word` VARCHAR( 255 ) NOT NULL ;
+ALTER TABLE `anope_cs_badwords` ADD UNIQUE (`channel` , `word`) ;
+ALTER TABLE `anope_cs_ttb` ADD UNIQUE (`channel` , `ttb_id`) ;
+ALTER TABLE `anope_os_akills` CHANGE `user` `user` VARCHAR( 255 ) NOT NULL , CHANGE `host` `host` VARCHAR( 255 ) NOT NULL ;
+ALTER TABLE `anope_os_akills` ADD UNIQUE (`user` , `host`) ;
+ALTER TABLE `anope_os_sglines` CHANGE `mask` `mask` VARCHAR( 255 ) NOT NULL ;
+ALTER TABLE `anope_os_sglines` ADD UNIQUE (`mask`) ;
+ALTER TABLE `anope_os_sqlines` CHANGE `mask` `mask` VARCHAR( 255 ) NOT NULL ;
+ALTER TABLE `anope_os_sqlines` ADD UNIQUE (`mask`) ;
+ALTER TABLE `anope_os_szlines` CHANGE `mask` `mask` VARCHAR( 255 ) NOT NULL ;
+ALTER TABLE `anope_os_szlines` ADD UNIQUE (`mask`) ;
+ALTER TABLE `anope_os_news` ADD UNIQUE (`type` , `num` , `time`) ;
+ALTER TABLE `anope_os_exceptions` CHANGE `mask` `mask` VARCHAR( 255 ) NOT NULL ;
+ALTER TABLE `anope_os_exceptions` ADD UNIQUE (`mask`) ;
+ALTER TABLE `anope_hs_core` DROP INDEX `nick_index` ;
+ALTER TABLE `anope_bs_core` DROP INDEX `nick_index` ;
+ALTER TABLE `anope_ms_info` CHANGE `receiver` `receiver` VARCHAR( 255 ) NOT NULL ;
+ALTER TABLE `anope_ms_info` ADD INDEX ( `receiver` , `serv` ) ;
Anope Version 1.7.19
--------------------
diff --git a/data/tables.sql b/data/tables.sql
index 546c95287..2d4889cb5 100644
--- a/data/tables.sql
+++ b/data/tables.sql
@@ -1,27 +1,18 @@
-- If you need to create your db, uncomment the following lines.
--- create database anope;
--- use anope;
+--
+-- CREATE DATABASE anope;
+-- USE anope;
---
--- Table structure for table `anope_info`
---
-
-DROP TABLE IF EXISTS anope_info;
-CREATE TABLE anope_info (
- version int(11) default NULL,
- date datetime default NULL
-) TYPE=MyISAM;
-
---
--- Table structure for table `anope_bs_core`
---
+--
+-- Table structure for table 'anope_bs_core'
+--
DROP TABLE IF EXISTS anope_bs_core;
CREATE TABLE anope_bs_core (
bs_id int(11) NOT NULL auto_increment,
nick varchar(255) NOT NULL default '',
- user text NOT NULL,
+ `user` text NOT NULL,
host text NOT NULL,
rname text NOT NULL,
flags int(11) NOT NULL default '0',
@@ -29,65 +20,75 @@ CREATE TABLE anope_bs_core (
chancount int(11) NOT NULL default '0',
active int(1) NOT NULL default '1',
PRIMARY KEY (bs_id),
- UNIQUE KEY nick (nick),
- KEY nick_index (nick(10))
-) TYPE=MyISAM;
+ UNIQUE KEY nick (nick)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1;
---
--- Table structure for table `anope_cs_access`
---
+-- --------------------------------------------------------
+
+--
+-- Table structure for table 'anope_cs_access'
+--
DROP TABLE IF EXISTS anope_cs_access;
CREATE TABLE anope_cs_access (
ca_id int(11) NOT NULL auto_increment,
in_use int(11) NOT NULL default '0',
- level int(11) NOT NULL default '0',
+ `level` int(11) NOT NULL default '0',
display varchar(255) NOT NULL default '',
channel varchar(255) NOT NULL default '',
last_seen int(11) NOT NULL default '0',
active tinyint(1) NOT NULL default '1',
- PRIMARY KEY (ca_id)
-) TYPE=MyISAM;
+ PRIMARY KEY (ca_id),
+ UNIQUE KEY channel (channel,display)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+
+-- --------------------------------------------------------
---
--- Table structure for table `anope_cs_akicks`
---
+--
+-- Table structure for table 'anope_cs_akicks'
+--
DROP TABLE IF EXISTS anope_cs_akicks;
CREATE TABLE anope_cs_akicks (
ck_id int(11) NOT NULL auto_increment,
channel varchar(255) NOT NULL default '',
flags int(11) NOT NULL default '0',
- dmask text NOT NULL,
+ dmask varchar(255) NOT NULL,
reason text NOT NULL,
creator text NOT NULL,
addtime int(11) NOT NULL default '0',
active tinyint(1) NOT NULL default '1',
- PRIMARY KEY (ck_id)
-) TYPE=MyISAM;
+ PRIMARY KEY (ck_id),
+ UNIQUE KEY channel (channel,dmask)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1;
---
--- Table structure for table `anope_cs_badwords`
---
+-- --------------------------------------------------------
+
+--
+-- Table structure for table 'anope_cs_badwords'
+--
DROP TABLE IF EXISTS anope_cs_badwords;
CREATE TABLE anope_cs_badwords (
cw_id int(11) NOT NULL auto_increment,
channel varchar(255) NOT NULL default '',
- word text NOT NULL,
- type int(11) NOT NULL default '0',
+ word varchar(255) NOT NULL,
+ `type` int(11) NOT NULL default '0',
active tinyint(1) NOT NULL default '1',
- PRIMARY KEY (cw_id)
-) TYPE=MyISAM;
+ PRIMARY KEY (cw_id),
+ UNIQUE KEY channel (channel,word)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+
+-- --------------------------------------------------------
---
--- Table structure for table `anope_cs_info`
---
+--
+-- Table structure for table 'anope_cs_info'
+--
DROP TABLE IF EXISTS anope_cs_info;
CREATE TABLE anope_cs_info (
ci_id int(11) NOT NULL auto_increment,
- name varchar(255) NOT NULL default '',
+ `name` varchar(255) NOT NULL default '',
founder text NOT NULL,
successor text NOT NULL,
founderpass tinyblob NOT NULL,
@@ -123,40 +124,48 @@ CREATE TABLE anope_cs_info (
repeattimes smallint(6) NOT NULL default '0',
active tinyint(1) NOT NULL default '1',
PRIMARY KEY (ci_id),
- UNIQUE KEY name (name),
- KEY name_index (name(10))
-) TYPE=MyISAM;
+ UNIQUE KEY `name` (`name`)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1;
---
--- Table structure for table `anope_cs_levels`
---
+-- --------------------------------------------------------
+
+--
+-- Table structure for table 'anope_cs_levels'
+--
DROP TABLE IF EXISTS anope_cs_levels;
CREATE TABLE anope_cs_levels (
cl_id int(11) NOT NULL auto_increment,
channel varchar(255) NOT NULL default '',
position int(11) NOT NULL default '0',
- level int(11) NOT NULL default '0',
+ `level` int(11) NOT NULL default '0',
active tinyint(1) NOT NULL default '1',
- PRIMARY KEY (cl_id)
-) TYPE=MyISAM;
+ PRIMARY KEY (cl_id),
+ UNIQUE KEY channel (channel,position)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table 'anope_cs_ttb'
+--
---
--- Table structure for table `anope_cs_ttb`
---
DROP TABLE IF EXISTS anope_cs_ttb;
CREATE TABLE anope_cs_ttb (
ct_id int(11) NOT NULL auto_increment,
channel varchar(255) NOT NULL default '',
ttb_id int(11) NOT NULL default '0',
- value int(11) NOT NULL default '0',
+ `value` int(11) NOT NULL default '0',
active tinyint(1) NOT NULL default '1',
- PRIMARY KEY (ct_id)
-) TYPE=MyISAM;
+ PRIMARY KEY (ct_id),
+ UNIQUE KEY channel (channel,ttb_id)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+
+-- --------------------------------------------------------
---
--- Table structure for table `anope_hs_core`
---
+--
+-- Table structure for table 'anope_hs_core'
+--
DROP TABLE IF EXISTS anope_hs_core;
CREATE TABLE anope_hs_core (
@@ -165,34 +174,51 @@ CREATE TABLE anope_hs_core (
vident text NOT NULL,
vhost text NOT NULL,
creator text NOT NULL,
- time int(11) NOT NULL default '0',
+ `time` int(11) NOT NULL default '0',
active tinyint(1) NOT NULL default '1',
PRIMARY KEY (bs_id),
- UNIQUE KEY nick (nick),
- KEY nick_index (nick(10))
-) TYPE=MyISAM;
+ UNIQUE KEY nick (nick)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1;
---
--- Table structure for table `anope_ms_info`
---
+-- --------------------------------------------------------
+
+--
+-- Table structure for table 'anope_info'
+--
+
+DROP TABLE IF EXISTS anope_info;
+CREATE TABLE anope_info (
+ version int(11) default NULL,
+ `date` datetime default NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table 'anope_ms_info'
+--
DROP TABLE IF EXISTS anope_ms_info;
CREATE TABLE anope_ms_info (
nm_id int(11) NOT NULL auto_increment,
- receiver text NOT NULL,
+ receiver varchar(255) NOT NULL,
number int(11) NOT NULL default '0',
flags int(11) NOT NULL default '0',
- time int(11) NOT NULL default '0',
+ `time` int(11) NOT NULL default '0',
sender text NOT NULL,
- text blob NOT NULL,
+ `text` blob NOT NULL,
serv enum('NICK','CHAN') NOT NULL default 'NICK',
active tinyint(1) NOT NULL default '1',
- PRIMARY KEY (nm_id)
-) TYPE=MyISAM;
+ PRIMARY KEY (nm_id),
+ UNIQUE KEY nm_id (nm_id,serv),
+ KEY receiver (receiver,serv)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+
+-- --------------------------------------------------------
---
--- Table structure for table `anope_ns_access`
---
+--
+-- Table structure for table 'anope_ns_access'
+--
DROP TABLE IF EXISTS anope_ns_access;
CREATE TABLE anope_ns_access (
@@ -200,12 +226,15 @@ CREATE TABLE anope_ns_access (
display varchar(255) NOT NULL default '',
access text NOT NULL,
active tinyint(1) NOT NULL default '1',
- PRIMARY KEY (na_id)
-) TYPE=MyISAM;
+ PRIMARY KEY (na_id),
+ UNIQUE KEY display (display)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+
+-- --------------------------------------------------------
---
--- Table structure for table `anope_ns_alias`
---
+--
+-- Table structure for table 'anope_ns_alias'
+--
DROP TABLE IF EXISTS anope_ns_alias;
CREATE TABLE anope_ns_alias (
@@ -214,19 +243,20 @@ CREATE TABLE anope_ns_alias (
nick varchar(255) NOT NULL default '',
time_registered int(10) unsigned NOT NULL default '0',
last_seen int(10) unsigned NOT NULL default '0',
- status int(11) unsigned NOT NULL default '0',
+ `status` int(11) unsigned NOT NULL default '0',
last_usermask text NOT NULL,
last_realname text NOT NULL,
last_quit text NOT NULL,
active tinyint(1) NOT NULL default '1',
PRIMARY KEY (na_id),
- UNIQUE KEY nick (nick),
- KEY nick_index (nick(10))
-) TYPE=MyISAM;
+ UNIQUE KEY nick (nick)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1;
---
--- Table structure for table `anope_ns_core`
---
+-- --------------------------------------------------------
+
+--
+-- Table structure for table 'anope_ns_core'
+--
DROP TABLE IF EXISTS anope_ns_core;
CREATE TABLE anope_ns_core (
@@ -237,7 +267,7 @@ CREATE TABLE anope_ns_core (
icq int(10) unsigned NOT NULL default '0',
url text NOT NULL,
flags int(11) NOT NULL default '0',
- language smallint(5) unsigned NOT NULL default '0',
+ `language` smallint(5) unsigned NOT NULL default '0',
accesscount smallint(6) NOT NULL default '0',
memocount smallint(5) unsigned NOT NULL default '0',
memomax smallint(5) unsigned NOT NULL default '0',
@@ -246,48 +276,53 @@ CREATE TABLE anope_ns_core (
greet text NOT NULL,
active tinyint(1) NOT NULL default '1',
PRIMARY KEY (nc_id),
- UNIQUE KEY display (display),
- KEY display_index (display(10))
-) TYPE=MyISAM;
+ UNIQUE KEY display (display)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+
+-- --------------------------------------------------------
---
--- Table structure for table `anope_ns_request`
---
+--
+-- Table structure for table 'anope_ns_request'
+--
DROP TABLE IF EXISTS anope_ns_request;
CREATE TABLE anope_ns_request (
nr_id int(11) NOT NULL auto_increment,
nick varchar(255) NOT NULL default '',
passcode text NOT NULL,
- password tinyblob NOT NULL,
+ `password` tinyblob NOT NULL,
email text NOT NULL,
requested int(11) NOT NULL default '0',
active tinyint(1) NOT NULL default '1',
PRIMARY KEY (nr_id),
- UNIQUE KEY nick (nick),
- KEY nick_index (nick(10))
-) TYPE=MyISAM;
+ UNIQUE KEY nick (nick)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1;
---
--- Table structure for table `anope_os_akills`
---
+-- --------------------------------------------------------
+
+--
+-- Table structure for table 'anope_os_akills'
+--
DROP TABLE IF EXISTS anope_os_akills;
CREATE TABLE anope_os_akills (
ok_id int(11) NOT NULL auto_increment,
- user text NOT NULL,
- host text NOT NULL,
+ `user` varchar(255) NOT NULL,
+ host varchar(255) NOT NULL,
xby text NOT NULL,
reason text NOT NULL,
seton int(11) NOT NULL default '0',
expire int(11) NOT NULL default '0',
active tinyint(1) NOT NULL default '1',
- PRIMARY KEY (ok_id)
-) TYPE=MyISAM;
+ PRIMARY KEY (ok_id),
+ UNIQUE KEY `user` (`user`,host)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1;
---
--- Table structure for table `anope_os_core`
---
+-- --------------------------------------------------------
+
+--
+-- Table structure for table 'anope_os_core'
+--
DROP TABLE IF EXISTS anope_os_core;
CREATE TABLE anope_os_core (
@@ -299,85 +334,100 @@ CREATE TABLE anope_os_core (
sqlines_count int(11) NOT NULL default '0',
szlines_count int(11) NOT NULL default '0',
PRIMARY KEY (oc_id)
-) TYPE=MyISAM;
+) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+
+-- --------------------------------------------------------
---
--- Table structure for table `anope_os_exceptions`
---
+--
+-- Table structure for table 'anope_os_exceptions'
+--
DROP TABLE IF EXISTS anope_os_exceptions;
CREATE TABLE anope_os_exceptions (
oe_id int(11) NOT NULL auto_increment,
- mask text NOT NULL,
+ mask varchar(255) NOT NULL,
lim int(11) NOT NULL default '0',
who text NOT NULL,
reason text NOT NULL,
- time int(11) NOT NULL default '0',
+ `time` int(11) NOT NULL default '0',
expires int(11) NOT NULL default '0',
active tinyint(1) NOT NULL default '1',
- PRIMARY KEY (oe_id)
-) TYPE=MyISAM;
+ PRIMARY KEY (oe_id),
+ UNIQUE KEY mask (mask)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1;
---
--- Table structure for table `anope_os_news`
---
+-- --------------------------------------------------------
+
+--
+-- Table structure for table 'anope_os_news'
+--
DROP TABLE IF EXISTS anope_os_news;
CREATE TABLE anope_os_news (
on_id int(11) NOT NULL auto_increment,
- type int(11) NOT NULL default '0',
+ `type` int(11) NOT NULL default '0',
num int(11) NOT NULL default '0',
ntext text NOT NULL,
who text NOT NULL,
- time int(11) NOT NULL default '0',
+ `time` int(11) NOT NULL default '0',
active tinyint(1) NOT NULL default '1',
- PRIMARY KEY (on_id)
-) TYPE=MyISAM;
+ PRIMARY KEY (on_id),
+ UNIQUE KEY `type` (`type`,num,`time`)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+
+-- --------------------------------------------------------
---
--- Table structure for table `anope_os_sglines`
---
+--
+-- Table structure for table 'anope_os_sglines'
+--
DROP TABLE IF EXISTS anope_os_sglines;
CREATE TABLE anope_os_sglines (
og_id int(11) NOT NULL auto_increment,
- mask text NOT NULL,
+ mask varchar(255) NOT NULL,
xby text NOT NULL,
reason text NOT NULL,
seton int(11) NOT NULL default '0',
expire int(11) NOT NULL default '0',
active tinyint(1) NOT NULL default '1',
- PRIMARY KEY (og_id)
-) TYPE=MyISAM;
+ PRIMARY KEY (og_id),
+ UNIQUE KEY mask (mask)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1;
---
--- Table structure for table `anope_os_sqlines`
---
+-- --------------------------------------------------------
+
+--
+-- Table structure for table 'anope_os_sqlines'
+--
DROP TABLE IF EXISTS anope_os_sqlines;
CREATE TABLE anope_os_sqlines (
og_id int(11) NOT NULL auto_increment,
- mask text NOT NULL,
+ mask varchar(255) NOT NULL,
xby text NOT NULL,
reason text NOT NULL,
seton int(11) NOT NULL default '0',
expire int(11) NOT NULL default '0',
active tinyint(1) NOT NULL default '1',
- PRIMARY KEY (og_id)
-) TYPE=MyISAM;
+ PRIMARY KEY (og_id),
+ UNIQUE KEY mask (mask)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+
+-- --------------------------------------------------------
---
--- Table structure for table `anope_os_szlines`
---
+--
+-- Table structure for table 'anope_os_szlines'
+--
DROP TABLE IF EXISTS anope_os_szlines;
CREATE TABLE anope_os_szlines (
og_id int(11) NOT NULL auto_increment,
- mask text NOT NULL,
+ mask varchar(255) NOT NULL,
xby text NOT NULL,
reason text NOT NULL,
seton int(11) NOT NULL default '0',
expire int(11) NOT NULL default '0',
active tinyint(1) NOT NULL default '1',
- PRIMARY KEY (og_id)
-) TYPE=MyISAM;
+ PRIMARY KEY (og_id),
+ UNIQUE KEY mask (mask)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1;
diff --git a/version.log b/version.log
index e9e864586..3cebf4dca 100644
--- a/version.log
+++ b/version.log
@@ -9,10 +9,14 @@ VERSION_MAJOR="1"
VERSION_MINOR="7"
VERSION_PATCH="19"
VERSION_EXTRA="-svn"
-VERSION_BUILD="1298"
+VERSION_BUILD="1299"
# $Log$
#
+# BUILD : 1.7.19 (1299)
+# BUGS :
+# NOTES : Added MySQL indexes to decrease the MySQL load during database operations
+#
# BUILD : 1.7.19 (1298)
# BUGS : N/A
# NOTES : [1] Applied heinz patch to WIN32 docs [2] Corrected comment in chanserv.c