对于MySQL来说,但我猜测大多数SQL品牌的结构都是相似的。组合索引是否比单个索引大得多?例如,保持INDEX(col1,col2)所需的空间量是否与保持INDEX(col1)+ INXEX(col2)的空间量相同?我现在并没有完全陷入开发阶段,只是好奇。
答案 0 :(得分:2)
使用InnoDB,组合索引的大小大致为col1
的大小加上col2
的大小加上表的主键大小(如果使用MyISAM则为4个字节)。
使用InnoDB或MyISAM时,组合索引应小于两个单独的索引,因为有两个单独的索引,主键(或4字节行指针)将包含两次(每个索引一次)。
答案 1 :(得分:1)
不,它会小于两个索引的总和。多少取决于各种因素,例如表格上有聚集索引,长度和其他几个因素。一般来说:col1和col2越大,指数总和越接近综合指数,因为它们主导其他因素。