关于mysql索引的创建,该怎么解决

关于mysql索引的创建

假定现有一张表

包括c1,c2,c3,c4,c5这5列(或者更多),

列类型是int或char中的一种,就是说列类型只包含这两种,不涉及2进制等其他列类型,

已知对该表的查询需求是这5列都有可能涉及到,

即where条件是这5列的排列组合,且为and关联,

但是可以确定这5列在where中的顺序为c1,c2,c3,c4,c5

即如果c1列作为查询条件使用的话,必定排在c2,c3,c4,c5之前

如果c2列作为查询条件使用的话,必定排在c3,c4,c5之前

例如,where条件可能为:

where c1 = ? and c2 = ? and c4 = ? and c5 = ?;

或where c3 = ? and c4 = ? and c5 = ?;

或where c1 = ? and c4 = ?;

或where c2 = ? and c3 = ? and c5 = ?;

等等

我想问的是

对于这样的查询需求

建立索引的话,应该是单独对每列建立单列索引,总共建立5个单列索引,对程序整体的效率提高较大,

还是按照一定的规则建立若干个多列索引,对程序整体的效率提高较大(如果是这样,该怎么建)?



SQL code

where c1 = ? and c2 = ? and            c4 = ? and c5 = ?;
where                       c3 = ? and c4 = ? and c5 = ?;
where c1 = ? and                       c4 = ?;
where            c2 = ? and c3 = ? and            c5 = ?;


做5个单列索引吧。

在查询的时候,如果可能用到多个多列索引的时候,MYSQL会自动进行索引合并,效率很好。
关于mysql索引的创建,该怎么解决

相关文章:

你感兴趣的文章:

标签云: