比较字符串长度相等

时间:2011-07-18 17:17:49

标签: mysql database relational-database

我想知道在索引varchar字段下的两个以下操作中的哪一个更有效(它们在我更难查询中扮演替代方案):

length(field) == 5

field == "12345"

首先,对我来说很明显第一个条款如果更快。但是,由于字段被索引,比较相当快。但长度呢?我猜索引不存储有关字符串长度的信息...

2 个答案:

答案 0 :(得分:2)

第二个在索引varchar字段中效率更高。具体而言,限制标准(精确匹配)比长度限制更具限制性;更大的限制加速了选择。

答案 1 :(得分:0)

无论如何,长度比较更好。即使以任何方式对字符串进行散列和索引,它们的比较也不会比简单的整数比较更快。即使没有存储长度(但我不相信),用于长度计算的空循环while(s[i] != '\0');将比char-by-char循环somparison更快。