没有。 where子句中的列会影响mysql中的查询速度

时间:2013-08-24 07:29:45

标签: mysql performance

我到处搜索,但没有找到任何答案,

例如,我的where子句中有8个列,如此示例查询:

select col1,col2,col3,col4,col5,col6,col7,col8 where col1 = 1 and col2 = 1 and col3 = 1 and col4 = 'sample' and col5 like '%sample%' and col6 = 1 and col7 like '%sample%'and col8 = '1'

我已经在我的电脑上测试了这个并且速度很好,但是我不知道这个查询是否会在其他具有较低规格的电脑中快速,因为我正在使用的电脑具有高规格。我没有其他电脑来测试这种查询。

我表中的某些列也没有编入索引,因为它不适用。

提前谢谢

2 个答案:

答案 0 :(得分:1)

  

在表中没有正确或错误的列数,因为您正在使用的数据以及使用它的方式应该决定您的数据库设计。 (来自:http://ask.sqlservercentral.com/questions/8461/will-number-of-columns-in-a-table-can-affect-perfo.html

有关where子句的更多与性能相关的信息:http://use-the-index-luke.com/sql/where-clause

答案 1 :(得分:1)

当然,它必然会在一定程度上影响性能 - 你要求数据库做更多工作。

为了帮助查询,请确保您拥有适当的composite索引。把那些相同的是开头之类的(但不要像'%dffd'那样烦恼),即。

CREATE INDEX ON <table name>
(col1, col2, col3, col4, col6, col8)