https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=39920
Bug ID: 39920
Summary: do_check_for_previous_checkout should us 'IN' over
'OR'
Change sponsored?: ---
Product: Koha
Version: Main
Hardware: All
OS: All
Status: NEW
Severity: normal
Priority: P5 - low
Component: Architecture, internals, and plumbing
Assignee: [email protected]
Reporter: [email protected]
QA Contact: [email protected]
When forming the query for previous checkout we have:
876 # Create (old)issues search criteria
877 my $criteria = {
878 borrowernumber => $self->borrowernumber,
879 itemnumber => \@item_nos,
880 };
This forms a query like:
SELECT COUNT( * ) FROM `issues` `me` WHERE ( ( `borrowernumber` = ? AND (
`itemnumber` = ? OR `itemnumber` = ? OR `itemnumber` = ? OR `itemnumber` = ? OR
`itemnumber` = ? OR `itemnumber` = ? OR `itemnumber` = ? OR `itemnumber` = ? OR
`itemnumber` = ? OR `itemnumber` = ? OR `itemnumber` = ? OR `itemnumber` = ? OR
`itemnumber` = ? OR `itemnumber` = ? OR `itemnumber` = ? OR `itemnumber` = ? OR
`itemnumber` = ? OR `itemnumber` = ? OR `itemnumber` = ? OR `itemnumber` = ? OR
`itemnumber` = ? OR `itemnumber` = ? OR `itemnumber` = ? OR `itemnumber` = ? OR
`itemnumber` = ? OR `itemnumber` = ? OR `itemnumber` = ? OR `itemnumber` = ? OR
`itemnumber` = ? OR `itemnumber` = ? OR `itemnumber` = ? OR `itemnumber` = ? OR
`itemnumber` = ? OR `itemnumber` = ? OR `itemnumber` = ? OR `itemnumber` = ? OR
`itemnumber` = ? OR `itemnumber` = ? OR `itemnumber` = ? OR `itemnumber` = ? OR
`itemnumber` = ? OR `itemnumber` = ? OR `itemnumber` = ? OR `itemnumber` = ? OR
`itemnumber` = ? OR `itemnumber` = ? OR `itemnumber` = ? OR `itemnumber` = ? OR
`itemnumber` = ? OR `itemnumber` = ? OR `itemnumber` = ? OR `itemnumber` = ? )
) ):
If we instead do:
itemnumber => { -in => \@item_nos }
We get a query like:
SELECT COUNT( * ) FROM `issues` `me` WHERE ( ( `borrowernumber` = ? AND
`itemnumber` IN ( ?, ?, ?, ? ) ) )
I believe in the past we fond that MySQL has optimizations for IN and it
shortens the query in logs
--
You are receiving this mail because:
You are watching all bug changes.
You are the assignee for the bug.
_______________________________________________
Koha-bugs mailing list
[email protected]
https://lists.koha-community.org/cgi-bin/mailman/listinfo/koha-bugs
website : http://www.koha-community.org/
git : http://git.koha-community.org/
bugs : http://bugs.koha-community.org/