我很好奇是否应该在字符串字段上加入表来修剪字符串字段?
假设您在两个不同的表中有两个相同的字符串。您想要在这两个字符串上连接两个表。所以你会做这样的事情:
SELECT *
FROM table_primary
LEFT
JOIN table_seconday
ON table_primary.string_one = table_seconday.string_two
我的问题是,即使字符串相同,首先应该修剪字符串字段,然后相互比较吗?
加入字符串时是否有最佳做法,或者加入整数时通常会进行比较?
答案 0 :(得分:3)
通常,加入字符串值表示设计错误,除非它们是主键或某些代码(例如学生ID)。在后一种情况下,您不应以任何方式修改值,否则查询将不会使用索引,性能将受到重创。
如果这只是一次性案例并且性能不是问题,那么您可以从技术上做任何能够获得所需结果的事情。因此,如果这些字符串可能有一些额外的空格,那么你可以修剪它们。同样,这表明存在一些数据完整性问题。在将字符串首先插入数据库之前验证和清理字符串要好得多。因此,例如,如果您在将字符串插入数据库之前修剪字符串,那么您现在不需要担心它,即使它仍然没有使用索引,性能也会更好,因为至少您将节省时间修剪功能将采取双方。
答案 1 :(得分:1)
现在这取决于你的用例。
是的,如果您有可能从应用程序中获取噪音数据。
否,如果您没有来自应用程序的任何噪音,那么您将拥有正确的数据。
因此,如果您不必要地使用修剪,您的性能正在下降,我知道这可以忽略不计,但仍然会受到服务器资源的影响。 如果你避免并且你有一些嘈杂的数据,你将无法获得预期的输出。
答案 2 :(得分:0)
您可以尝试在每个表中添加校验和列,然后加入该表。