Details
- 
    
Bug
 - 
    Status: Closed (View Workflow)
 - 
    
Critical
 - 
    Resolution: Fixed
 - 
    10.1.15
 - 
    None
 - 
    Centos 7.2
Invision Power Suite 4.1.12 
Description
I use Invision Power Suite 4.1.12 board software which have a query that became very slow since the update to MariaDB 10.1.15.
I have the following table in the database:
					+-----------------------+---------------------+------+-----+---------+----------------+
			 | 
		
					| Field                 | Type                | Null | Key | Default | Extra          |
			 | 
		
					+-----------------------+---------------------+------+-----+---------+----------------+
			 | 
		
					| index_class           | varchar(255)        | YES  | MUL | NULL    |                |
			 | 
		
					| index_id              | bigint(20) unsigned | NO   | PRI | NULL    | auto_increment |
			 | 
		
					| index_object_id       | int(10) unsigned    | NO   |     | 0       |                |
			 | 
		
					| index_item_id         | int(10) unsigned    | NO   |     | 0       |                |
			 | 
		
					| index_container_id    | int(10) unsigned    | NO   |     | 0       |                |
			 | 
		
					| index_content         | mediumtext          | NO   | MUL | NULL    |                |
			 | 
		
					| index_permissions     | text                | NO   |     | NULL    |                |
			 | 
		
					| index_author          | int(10) unsigned    | NO   | MUL | 0       |                |
			 | 
		
					| index_title           | varchar(255)        | YES  | MUL | NULL    |                |
			 | 
		
					| index_date_created    | int(10) unsigned    | NO   | MUL | 0       |                |
			 | 
		
					| index_date_updated    | int(10) unsigned    | YES  | MUL | NULL    |                |
			 | 
		
					| index_hidden          | tinyint(1)          | NO   | MUL | 0       |                |
			 | 
		
					| index_item_index_id   | bigint(20) unsigned | YES  |     | NULL    |                |
			 | 
		
					| index_item_author     | mediumint(8)        | YES  |     | NULL    |                |
			 | 
		
					| index_is_last_comment | tinyint(1)          | NO   |     | 0       |                |
			 | 
		
					+-----------------------+---------------------+------+-----+---------+----------------+
			 | 
		
I have about 1.6 Millions row in the table.
Each time a user goes to a page that needs to run this query, it will examine all the rows, taking about 7 seconds to do it. With MariaDB 10.1.14 it only examines some of them, taking only a few milliseconds.
Here is the slow query log of the query:
					# Query_time: 7.511627  Lock_time: 0.000029  Rows_sent: 25  Rows_examined: 1648220
			 | 
		
					# Rows_affected: 0
			 | 
		
					# Full_scan: No  Full_join: No  Tmp_table: No  Tmp_table_on_disk: No
			 | 
		
					# Filesort: Yes  Filesort_on_disk: No  Merge_passes: 0  Priority_queue: Yes
			 | 
		
					#
			 | 
		
					# explain: id	select_type	table	type	possible_keys	key	key_len	ref	rows	r_rows	filtered	r_filtered	Extra
			 | 
		
					# explain: 1	SIMPLE	main	ref	object,index_date_updated,index_hidden,item,container	index_hidden	1	const	1	25.00	100.00	100.00	Using where; Using filesort
			 | 
		
					#
			 | 
		
| 
					 | 
		
					SET timestamp=1467465949;
			 | 
		
					/*IPS\Content\Search\Mysql\_Query::search:308*/ SELECT main.* FROM `ibf_core_search_index` AS `main` WHERE ( ( index_class IN('IPS\\core\\Statuses\\Status','IPS\\core\\Statuses\\Reply') ) OR index_class='IPS\\forums\\Topic\\Post' OR ( index_class IN('IPS\\calendar\\Event','IPS\\calendar\\Event\\Comment','IPS\\calendar\\Event\\Review') ) ) AND ( ( ( index_class IN('IPS\\core\\Statuses\\Status','IPS\\core\\Statuses\\Reply') ) AND index_is_last_comment=1 ) OR ( index_class='IPS\\forums\\Topic\\Post' AND index_is_last_comment=1 ) OR ( ( index_class IN('IPS\\calendar\\Event','IPS\\calendar\\Event\\Comment') ) AND index_is_last_comment=1 ) ) AND ( index_permissions = '*' OR ( FIND_IN_SET(24,index_permissions) OR FIND_IN_SET('m39839',index_permissions) ) ) AND index_hidden=0 AND index_date_updated>1466861141 ORDER BY index_date_updated DESC LIMIT 0,25;
			 | 
		
Now, if i remove the "AND index_hidden=0" from the query, it becomes fast again.
So i believe the problems its there and it only happens on the last MariaDB version.
Attachments
Issue Links
- relates to
 - 
                    
MDEV-10360 Extended keys: index properties depend on index order
-         
 - Closed
 
 -