Bug 14053: Acquisition db tables are missing indexes
Acquisition db tables are missing some indexes to have performance queries. This patch adds an index on some columns very often used in search queries, such as aqbooksellers.name and aqbudgets.budget_code. Also adds an index on aqorders.orderstatus, very often used with hardcoded value like 'cancelled', in various queries. Test plan : 1) Back up database 2) $ git reset --hard origin/master 3) $ git bz apply 14053 4) In your mysql client > DROP DATABASE koha_library; > CREATE DATABASE koha_library; > QUIT; -- Obviously you may need to vary koha_library :) 5) Navigate to staff client -- should be able to set up the DB just fine. -- this will catch the comma bug that keeps coming in. 6) $ git reset --hard origin/master 7) Repeat step 4 8) Navigate to staff client -- nothing tested, but we need the DB set up. 9) $ ./installer/data/mysql/updatedatabase.pl -- atomic updates run without issue. 10) run koha qa test tools 11) Restore DB 12) Try to compare performance after and before database update. I think query contained in C4::Acquistion::GetInvoices could be a good example Signed-off-by: Mark Tompsett <mtompset@hotmail.com> Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de> Signed-off-by: Tomas Cohen Arazi <tomascohen@gmail.com>
This commit is contained in:
parent
9ce2cd7082
commit
a6017d87f1
1 changed files with 11 additions and 1 deletions
|
@ -2853,6 +2853,7 @@ CREATE TABLE `aqbasket` ( -- stores data about baskets in acquisitions
|
|||
KEY `booksellerid` (`booksellerid`),
|
||||
KEY `basketgroupid` (`basketgroupid`),
|
||||
KEY `contractnumber` (`contractnumber`),
|
||||
KEY `authorisedby` (`authorisedby`),
|
||||
CONSTRAINT `aqbasket_ibfk_1` FOREIGN KEY (`booksellerid`) REFERENCES `aqbooksellers` (`id`) ON UPDATE CASCADE,
|
||||
CONSTRAINT `aqbasket_ibfk_2` FOREIGN KEY (`contractnumber`) REFERENCES `aqcontract` (`contractnumber`),
|
||||
CONSTRAINT `aqbasket_ibfk_3` FOREIGN KEY (`basketgroupid`) REFERENCES `aqbasketgroups` (`id`) ON UPDATE CASCADE,
|
||||
|
@ -2907,6 +2908,7 @@ CREATE TABLE `aqbooksellers` ( -- information about the vendors listed in acquis
|
|||
PRIMARY KEY (`id`),
|
||||
KEY `listprice` (`listprice`),
|
||||
KEY `invoiceprice` (`invoiceprice`),
|
||||
KEY `name` (`name`(255)),
|
||||
CONSTRAINT `aqbooksellers_ibfk_1` FOREIGN KEY (`listprice`) REFERENCES `currency` (`currency`) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
CONSTRAINT `aqbooksellers_ibfk_2` FOREIGN KEY (`invoiceprice`) REFERENCES `currency` (`currency`) ON DELETE CASCADE ON UPDATE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
|
||||
|
@ -2932,7 +2934,12 @@ CREATE TABLE `aqbudgets` ( -- information related to Funds
|
|||
`sort2_authcat` varchar(80) default NULL, -- second statistical category for this fund
|
||||
`budget_owner_id` int(11) default NULL, -- borrowernumber of the person who owns this fund (borrowers.borrowernumber)
|
||||
`budget_permission` int(1) default '0', -- level of permission for this fund (used only by the owner, only by the library, or anyone)
|
||||
PRIMARY KEY (`budget_id`)
|
||||
PRIMARY KEY (`budget_id`),
|
||||
KEY `budget_parent_id` (`budget_parent_id`),
|
||||
KEY `budget_code` (`budget_code`),
|
||||
KEY `budget_branchcode` (`budget_branchcode`),
|
||||
KEY `budget_period_id` (`budget_period_id`),
|
||||
KEY `budget_owner_id` (`budget_owner_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
|
||||
|
||||
--
|
||||
|
@ -2985,6 +2992,7 @@ CREATE TABLE `aqbudgets_planning` (
|
|||
`authvalue` varchar(30) NOT NULL,
|
||||
`display` tinyint(1) DEFAULT 1,
|
||||
PRIMARY KEY (`plan_id`),
|
||||
KEY `budget_period_id` (`budget_period_id`),
|
||||
CONSTRAINT `aqbudgets_planning_ifbk_1` FOREIGN KEY (`budget_id`) REFERENCES `aqbudgets` (`budget_id`) ON DELETE CASCADE ON UPDATE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
|
||||
|
||||
|
@ -3074,6 +3082,8 @@ CREATE TABLE `aqorders` ( -- information related to the basket line items
|
|||
KEY `basketno` (`basketno`),
|
||||
KEY `biblionumber` (`biblionumber`),
|
||||
KEY `budget_id` (`budget_id`),
|
||||
KEY `parent_ordernumber` (`parent_ordernumber`),
|
||||
KEY `orderstatus` (`orderstatus`),
|
||||
CONSTRAINT `aqorders_budget_id_fk` FOREIGN KEY (`budget_id`) REFERENCES `aqbudgets` (`budget_id`) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
CONSTRAINT `aqorders_ibfk_1` FOREIGN KEY (`basketno`) REFERENCES `aqbasket` (`basketno`) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
CONSTRAINT `aqorders_ibfk_2` FOREIGN KEY (`biblionumber`) REFERENCES `biblio` (`biblionumber`) ON DELETE SET NULL ON UPDATE CASCADE,
|
||||
|
|
Loading…
Reference in a new issue