mirror of
https://github.com/Piwigo/Piwigo.git
synced 2026-06-02 04:15:05 +02:00
optimization : instead of reading each $conf['calendar_datefield'] for
matching YEAR() and MONTH(), use of SQL statement BETWEEN ... AND ... on the date field + new index image_i5 on date_creation (default date field for calendar) git-svn-id: http://piwigo.org/svn/trunk@612 68402e56-0260-453c-a942-63ccdbb3a9ee
This commit is contained in:
@@ -86,10 +86,11 @@ if (isset($page['calendar_year']))
|
||||
$query = '
|
||||
SELECT DISTINCT(MONTH('.$conf['calendar_datefield'].')) AS month
|
||||
, COUNT(id) AS count
|
||||
FROM '.IMAGES_TABLE.', '.IMAGE_CATEGORY_TABLE.'
|
||||
FROM '.IMAGES_TABLE.' INNER JOIN '.IMAGE_CATEGORY_TABLE.' ON id = image_id
|
||||
'.$page['where'].'
|
||||
AND id = image_id
|
||||
AND YEAR('.$conf['calendar_datefield'].') = '.$page['calendar_year'].'
|
||||
AND '.$conf['calendar_datefield'].'
|
||||
BETWEEN \''.$page['calendar_year'].'-1-1\'
|
||||
AND \''.$page['calendar_year'].'-12-31\'
|
||||
GROUP BY MONTH('.$conf['calendar_datefield'].')
|
||||
;';
|
||||
$result = pwg_query($query);
|
||||
@@ -157,11 +158,11 @@ elseif (!isset($page['calendar_day']))
|
||||
// the number of picture for this day : $calendar_days
|
||||
$query = '
|
||||
SELECT DISTINCT('.$conf['calendar_datefield'].') AS day, COUNT(id) AS count
|
||||
FROM '.IMAGES_TABLE.', '.IMAGE_CATEGORY_TABLE.'
|
||||
FROM '.IMAGES_TABLE.' INNER JOIN '.IMAGE_CATEGORY_TABLE.' ON id = image_id
|
||||
'.$page['where'].'
|
||||
AND id = image_id
|
||||
AND YEAR('.$conf['calendar_datefield'].') = '.$page['calendar_year'].'
|
||||
AND MONTH('.$conf['calendar_datefield'].') = '.$page['calendar_month'].'
|
||||
AND '.$conf['calendar_datefield'].'
|
||||
BETWEEN \''.$page['calendar_year'].'-'.$page['calendar_month'].'-1\'
|
||||
AND \''.$page['calendar_year'].'-'.$page['calendar_month'].'-31\'
|
||||
GROUP BY day
|
||||
;';
|
||||
$result = pwg_query($query);
|
||||
@@ -182,10 +183,9 @@ elseif (isset($page['calendar_day']))
|
||||
|
||||
$query = '
|
||||
SELECT category_id AS category, COUNT(id) AS count
|
||||
FROM '.IMAGES_TABLE.', '.IMAGE_CATEGORY_TABLE.'
|
||||
FROM '.IMAGES_TABLE.' INNER JOIN '.IMAGE_CATEGORY_TABLE.' ON id = image_id
|
||||
'.$page['where'].'
|
||||
AND '.$conf['calendar_datefield'].' = \''.$page['calendar_date'].'\'
|
||||
AND id = image_id
|
||||
GROUP BY category_id
|
||||
;';
|
||||
$result = pwg_query($query);
|
||||
@@ -220,10 +220,11 @@ if (!isset($page['calendar_year']))
|
||||
{
|
||||
$query = '
|
||||
SELECT file,tn_ext,'.$conf['calendar_datefield'].',path
|
||||
FROM '.IMAGES_TABLE.', '.IMAGE_CATEGORY_TABLE.'
|
||||
FROM '.IMAGES_TABLE.' INNER JOIN '.IMAGE_CATEGORY_TABLE.' ON id = image_id
|
||||
'.$page['where'].'
|
||||
AND YEAR('.$conf['calendar_datefield'].') = '.$calendar_year.'
|
||||
AND id = image_id
|
||||
AND '.$conf['calendar_datefield'].'
|
||||
BETWEEN \''.$calendar_year.'-1-1\'
|
||||
AND \''.$calendar_year.'-12-31\'
|
||||
ORDER BY RAND()
|
||||
LIMIT 0,1
|
||||
;';
|
||||
@@ -265,11 +266,11 @@ elseif (!isset($page['calendar_month']))
|
||||
{
|
||||
$query = '
|
||||
SELECT file,tn_ext,'.$conf['calendar_datefield'].',path
|
||||
FROM '.IMAGES_TABLE.', '.IMAGE_CATEGORY_TABLE.'
|
||||
FROM '.IMAGES_TABLE.' INNER JOIN '.IMAGE_CATEGORY_TABLE.' ON id = image_id
|
||||
'.$page['where'].'
|
||||
AND YEAR('.$conf['calendar_datefield'].') = '.$page['calendar_year'].'
|
||||
AND MONTH('.$conf['calendar_datefield'].') = '.$calendar_month.'
|
||||
AND id = image_id
|
||||
AND '.$conf['calendar_datefield'].'
|
||||
BETWEEN \''.$page['calendar_year'].'-'.$calendar_month.'-1\'
|
||||
AND \''.$page['calendar_year'].'-'.$calendar_month.'-31\'
|
||||
ORDER BY RAND()
|
||||
LIMIT 0,1
|
||||
;';
|
||||
@@ -319,10 +320,9 @@ elseif (!isset($page['calendar_day']))
|
||||
{
|
||||
$query = '
|
||||
SELECT file,tn_ext,'.$conf['calendar_datefield'].',path
|
||||
FROM '.IMAGES_TABLE.', '.IMAGE_CATEGORY_TABLE.'
|
||||
FROM '.IMAGES_TABLE.' INNER JOIN '.IMAGE_CATEGORY_TABLE.' ON id = image_id
|
||||
'.$page['where'].'
|
||||
AND '.$conf['calendar_datefield'].' = \''.$calendar_day.'\'
|
||||
AND id = image_id
|
||||
ORDER BY RAND()
|
||||
LIMIT 0,1
|
||||
;';
|
||||
|
||||
@@ -140,5 +140,6 @@ index:images_i2 table:images column:date_available
|
||||
index:images_i1 table:images column:storage_category_id
|
||||
index:images_i3 table:images column:average_rate
|
||||
index:images_i4 table:images column:hit
|
||||
index:images_i5 table:images column:date_creation
|
||||
index:sites_ui1 table:sites column:galleries_url
|
||||
index:users_ui1 table:users column:username
|
||||
|
||||
@@ -145,7 +145,8 @@ CREATE TABLE phpwebgallery_images (
|
||||
KEY images_i2 (date_available),
|
||||
KEY images_i1 (storage_category_id),
|
||||
KEY images_i3 (average_rate),
|
||||
KEY images_i4 (hit)
|
||||
KEY images_i4 (hit),
|
||||
KEY images_i5 (date_creation)
|
||||
) TYPE=MyISAM;
|
||||
|
||||
--
|
||||
|
||||
Reference in New Issue
Block a user