MySql使用特定的数据类型索引性能更好

MySql使用特定的数据类型索引性能更好,mysql,indexing,Mysql,Indexing,mysql索引的性能是否取决于数据类型 如果有,在这种情况下最好使用什么数据类型 此外,在重复值较少的列上保留索引很重要,或者即使在重复值巨大的列上应用索引也会提供相同的性能 提前谢谢 除了索引,最好的数据类型是满足域要求的最小数据类型 列数据类型确实会影响这些列上索引的性能 越小越好 整数列上的索引效果最好(越小,速度越快) 在特定情况下,如果索引的选择性不够(即列有许多重复值,并且根据统计数据确定的搜索值将导致“太多”行),则优化人员可能会选择不使用索引 从@nani1216发布的链

mysql索引的性能是否取决于数据类型

如果有,在这种情况下最好使用什么数据类型

此外,在重复值较少的列上保留索引很重要,或者即使在重复值巨大的列上应用索引也会提供相同的性能


提前谢谢

除了索引,最好的数据类型是满足域要求的最小数据类型

列数据类型确实会影响这些列上索引的性能

越小越好

整数列上的索引效果最好(越小,速度越快)

在特定情况下,如果索引的选择性不够(即列有许多重复值,并且根据统计数据确定的搜索值将导致“太多”行),则优化人员可能会选择不使用索引

从@nani1216发布的链接:

要索引的一列或多列的大小是相关的,因为 数据库服务器在数据库中搜索或索引的数据越少 速度越快,在磁盘[或内存]上使用的存储空间就越少


撇开索引不谈,最好的数据类型是满足域要求的最小数据类型

列数据类型确实会影响这些列上索引的性能

越小越好

整数列上的索引效果最好(越小,速度越快)

在特定情况下,如果索引的选择性不够(即列有许多重复值,并且根据统计数据确定的搜索值将导致“太多”行),则优化人员可能会选择不使用索引

从@nani1216发布的链接:

要索引的一列或多列的大小是相关的,因为 数据库服务器在数据库中搜索或索引的数据越少 速度越快,在磁盘[或内存]上使用的存储空间就越少


是的,性能随数据类型的使用而变化。 在整型数据类型上建立索引比在char或varchar数据类型上建立索引提供更高的性能


查看

是的,性能随数据类型的使用而变化。 在整型数据类型上建立索引比在char或varchar数据类型上建立索引提供更高的性能


看看

正如其他人指出的那样,数据类型越小越好。原因很简单——如果记录越小,内存中加载的记录就越多

在InnoDB中,主键是每个二级索引的最后一列,因此小主键对于InnoDB表非常重要


至于索引的“选择性”,优化器可以选择根本不使用索引,如果值与索引记录的50%以上匹配,则进行表扫描(这是因为,如果引擎是InnoDB,索引是次要的,并且它没有覆盖索引,它必须点击光盘一次才能读取索引,第二次才能读取实际的行数据,因此最好直接读取表数据。因此,对于包含大致相同值的列,索引不会获得太多性能(但若少量的值是0,并且您正在精确地查询这些行,那个么索引可能是好的!)

正如其他人指出的,较小的数据类型更好。这是出于简单的原因——若记录较小,您可以在内存中加载更多的记录

在InnoDB中,主键是每个二级索引的最后一列,因此小主键对于InnoDB表非常重要


至于索引的“选择性”,优化器可以选择根本不使用索引,如果值与索引记录的50%以上匹配,则进行表扫描(这是因为,如果引擎是InnoDB,索引是次要的,并且它没有覆盖索引,它必须点击光盘一次才能读取索引,第二次才能读取实际的行数据,因此最好直接读取表数据。因此,对于包含大致相同值的列,索引不会获得太多性能(但若少量的值是例如0,并且您正在精确地查询这些行,那个么索引可能是好的!)

所以根据您的说法,让我总结一下。索引在重复值较少的列上工作得更快。我希望我做对了?不一定工作得更快(这是简短的答案),但重复次数越少,索引就越有可能被使用。因此,根据你所说的,让我总结一下。索引在重复值越少的列上工作得越快。我希望我做对了?不一定工作得更快(这是简单的答案),但重复的次数越少,索引就越有可能被使用汉克斯,这个链接对牙库很有帮助,这个链接也很有帮助