Go to file
Nick Clemens 346898f2b1 Bug 29134: Use a subquery to increase performance of patron attributes search
This patch generates a subquery and checks if a borrowrnumber is in the results to add patrons
to search results

To test:
 1 - Generate a bunch of patrons:
    SELECT surname, firstname, branchcode, categorycode FROM ( SELECT surname FROM borrowers ORDER BY rand() ) a,( SELECT firstname FROM borrowers ORDER BY rand() ) b,( SELECT branchcode FROM borrowers ORDER BY rand() ) c,( SELECT categorycode FROM borrowers ORDER BY rand() ) d LIMIT 50000
 2 - Add a patron attribute to the system and make it searchable - I used code 'TEST'
 3 - Add a value for this attribute to many patrons:
   INSERT INTO borrower_attributes (borrowernumber,code,attribute) SELECT borrowernumber, 'TEST','alphabet' FROM borrowers LIMIT 10000;
 4 - In staff client got 'Patrons'
 5 - Open the browser console (F12) and view the netwrok tab
 6 - Perform a patron search for 'a'
 7 - Note the time it takes for 'search' to complete in console
 8 - Apply patch, restart_all
 9 - Repeat search
10 - Note it is much faster
11 - prove -v t/db_dependent/Utils/Datatables_Members.t

NOTE: I tested with 500k patrons and 100k attributes - search returned in ~2 seconds with patch
and did not return before I got impatient without patch

Signed-off-by: David Nind <david@davidnind.com>

Signed-off-by: Joonas Kylmälä <joonas.kylmala@iki.fi>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
(cherry picked from commit 173f3e950f)
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
(cherry picked from commit 3c4c2ebe9d)
Signed-off-by: Victor Grousset/tuxayo <victor@tuxayo.net>
2021-10-26 23:37:23 +02:00
C4 Bug 29134: Use a subquery to increase performance of patron attributes search 2021-10-26 23:37:23 +02:00
Koha Bug 29032: Pre-load ILL backends to speed up response 2021-10-17 03:12:41 +02:00
acqui Bug 27828: (bug 24469 follow-up) Add missing import 2021-03-14 18:59:56 +00:00
admin Bug 28207: Fix biblio_framework.frameworktext isn't in GROUP BY 2021-05-25 11:54:25 +00:00
api Bug 23653: use local copy of swagger v2 schema 2021-06-21 00:51:05 +02:00
authorities Bug 24663: Remove authnotrequired if set to 0 2020-08-31 20:03:22 +00:00
basket Bug 24663: Remove authnotrequired if set to 0 2020-08-31 20:03:22 +00:00
catalogue Bug 28213: Prevent crash if patron or club deleted after search to hold 2021-05-24 19:09:30 +00:00
cataloguing Bug 27739: Advanced editor should use DefaultCountryField008 preference 2021-04-25 16:04:42 +00:00
circ Bug 25760: (bug 15422 follow-up) Display record with hold ratio greater than or equal to the value entered 2021-05-25 13:00:09 +00:00
clubs Bug 24663: Remove authnotrequired if set to 0 2020-08-31 20:03:22 +00:00
course_reserves Bug 24663: Remove authnotrequired if set to 0 2020-08-31 20:03:22 +00:00
debian Bug 28364: Make log4perl.conf belong to the instance user 2021-06-09 01:26:29 +02:00
docs Bug 28476: Update info in docs/teams.yaml file 2021-07-11 04:36:44 +02:00
errors
…
etc Bug 8426: Diacritics not being mapped for searching 2021-03-23 12:43:26 +00:00
ill Bug 23173: (follow-up) Small improvements in efficiency 2020-04-06 11:05:09 +01:00
installer Increment version for 20.05.16 release 2021-09-23 22:36:56 +02:00
koha-tmpl Bug 28772: Display API secret once 2021-09-20 15:50:49 +02:00
labels Bug 24663: Remove authnotrequired if set to 0 2020-08-31 20:03:22 +00:00
members Bug 28772: Display API secret once 2021-09-20 15:50:49 +02:00
misc Update release notes for 20.05.16 release 2021-09-24 00:54:41 +02:00
offline_circ Bug 26675: (bug 23463 follow-up) Fix typo onloadn vs onloan 2020-11-10 22:49:05 +00:00
opac Bug 28941: Deal with OPACSuggestionUnwantedFields 2021-09-20 15:50:49 +02:00
patron_lists Bug 24663: Remove authnotrequired if set to 0 2020-08-31 20:03:22 +00:00
patroncards Bug 24663: Remove authnotrequired if set to 0 2020-08-31 20:03:22 +00:00
plugins Bug 24633: Add support for gitlab searching of plugins 2020-11-16 22:21:01 +00:00
pos Bug 28181: Filter out archived debit types in point of sale 2021-05-25 12:38:29 +00:00
reports Bug 28524: Escape 'rank' in cat_issues_top.pl 2021-07-22 21:28:43 +02:00
reserve Bug 28057: (follow-up) Get the biblionumber column 2021-08-16 22:57:56 +02:00
reviews Bug 24663: Remove authnotrequired if set to 0 2020-08-31 20:03:22 +00:00
rotating_collections Bug 24663: Remove authnotrequired if set to 0 2020-08-31 20:03:22 +00:00
serials Bug 7806: [20.05] Fix remaining occurrences of 0000-00-00 2021-03-08 14:26:22 +00:00
services
…
skel
…
suggestion Bug 7806: [20.05] Fix remaining occurrences of 0000-00-00 2021-03-08 14:26:22 +00:00
svc Bug 27061: Remove duplicate permission check in svc/mana/search 2021-05-25 11:45:05 +00:00
t Bug 28676: Unit test 2021-10-15 22:23:48 +02:00
tags Bug 24663: Remove authnotrequired if set to 0 2020-08-31 20:03:22 +00:00
tmp/modified_authorities
…
tools Bug 21818: Replace AutoCommit flag with DBIx transaction in stage-marc-import.pl 2021-05-24 18:24:09 +00:00
virtualshelves Bug 24663: Remove authnotrequired if set to 0 2020-08-31 20:03:22 +00:00
xt Bug 26265: add a plan for tests 2020-09-02 14:32:44 +00:00
.editorconfig Bug 24774: Set JSON indentation of 2 spaces in .editorconfig 2020-03-19 09:24:52 +00:00
.eslintrc.json
…
.gitignore
…
.htaccess
…
.mailmap Bug 28386: Disambiguate Tomas and Blou 2021-06-23 22:18:12 +02:00
.perlcriticrc Bug 21395: Make perlcritic happy 2020-07-13 16:44:43 +00:00
.scss-lint.yml
…
INSTALL
…
Koha.pm Increment version for 20.05.16 release 2021-09-23 22:36:56 +02:00
LICENSE
…
MANIFEST.SKIP
…
Makefile.PL Bug 26265: Add missing xt dir 2020-09-02 14:32:13 +00:00
README
…
README.md Bug 27092: Remove note about "synced repo" from README.md 2020-12-14 15:32:15 +00:00
README.robots
…
about.pl Bug 28386: Sort authors by lastname || firstname 2021-06-23 22:18:12 +02:00
changelanguage.pl
…
cpanfile Bug 28302: Forbid CGI::Compile 0.24 2021-05-25 13:35:24 +00:00
fix-perl-path.PL Bug 21395: Make perlcritic happy 2020-07-13 16:44:43 +00:00
gulpfile.js Bug 26228: Update gulpfile to work with Node.js v12 2020-09-03 14:49:31 +00:00
help.pl
…
koha_perl_deps.pl
…
kohaversion.pl
…
mainpage.pl Bug 24663: Remove authnotrequired if set to 0 2020-08-31 20:03:22 +00:00
package.json Bug 26228: Update gulpfile to work with Node.js v12 2020-09-03 14:49:31 +00:00
rewrite-config.PL Bug 25792: Rename 'ttf-dejavu' package to 'fonts-dejavu' for Debian 11 2020-07-28 14:46:44 +00:00
yarn.lock Bug 26228: Update gulpfile to work with Node.js v12 2020-09-03 14:49:31 +00:00

README.md

Koha is a free software integrated library system (ILS).

Koha is distributed under the GNU GPL version 3 or later.

Note: Koha does not accept pull requests from git hosting sites.

Note: This project has its own bug tracker, to report a bug or submit a patch visit http://bugs.koha-community.org.

For guidelines on submitting patches for Koha please visit https://wiki.koha-community.org/wiki/SubmitingAPatch

The developers handbook can be found at https://wiki.koha-community.org/wiki/Developer_handbook

http://koha-community.org/

Koha Logo