Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 我应该为此查询创建什么索引_Mysql_Sql - Fatal编程技术网

Mysql 我应该为此查询创建什么索引

Mysql 我应该为此查询创建什么索引,mysql,sql,Mysql,Sql,我不确定是否需要创建一个包含多列的索引,或者为所使用的每一列创建一个索引 我也不确定是否在索引字段上使用desc或asc SELECT * from movie where year > 1892 AND year < 2015 AND genre like '%Adventure%' AND genre like '%Comedy%' AND genre like '%Mystery%' AND imdbRating > 5.9 AND imdbvotes

我不确定是否需要创建一个包含多列的索引,或者为所使用的每一列创建一个索引

我也不确定是否在索引字段上使用desc或asc

SELECT  * from movie 
where year > 1892 AND year < 2015 AND  genre like '%Adventure%'  AND  genre like '%Comedy%'  
AND  genre like '%Mystery%'  AND imdbRating > 5.9 AND imdbvotes > 99 AND type = 'movie' 
从电影中选择*
其中年份>1892年,年份<2015年,类型如冒险类和喜剧类
还有像“%神秘%”和imdbRating>5.9和imdbvows>99这样的类型,以及type='movie'

体裁是一种变化,看起来像‘动作、喜剧、恐怖,

这个问题不可能回答得很好。索引创建的合理性来自我们从查询中提取的数据。应该为表的列创建索引,该查询没有使用超过10-15%的行,然后应用优化。在这方面,请查看哪些列符合此条件,并在其上创建索引。

在没有其他信息的情况下:(年份、类型、imdbrating、imdbvoces)

年份和
类型似乎最明显。
'%Adventure%
无法从索引中获益,仅供参考@code578841441如果LIKE的参数是不以通配符开头的常量字符串,则索引也可用于LIKE比较。1。请参见normalisationmake键入整数id,创建一对多关系,然后可以将索引放在那里。到目前为止,year imdbrating和imdbvoates是最佳候选“该查询未使用超过10-15%的行”请解释更多如果您有一个列,例如1000行,因此您得到了大约150行的选择,那么强制使用索引是有意义的。否则它将加快您的查询速度