我应该按ID或名称搜索数据库中的内容吗?

时间:2009-08-28 17:57:54

标签: database content-management-system

我有一个CMS,它有两种查询内容的方法。一个按id查询,另一个按内容名称查询。

ContentManager.Select(12);

ContentManager.Select("Content Name");

我看到第一个的方式会更快,因为id是一个索引,不涉及字符串比较。而第二个更容易使用。

出于维护原因,我曾使用第二个工作。但是,如果我改变了内容名称,那么Select显然不会再起作用了。但是Id应该只是数据库级别,而且从CMS表单中看不到。

编辑:此外,如果要删除并重新插入内容,则字符串选择将起作用,而id选择则不会。

我不能在这两种方法之间找到共同点。

3 个答案:

答案 0 :(得分:1)

通过主键进行选择可以获得最佳性能,但这并不总是您唯一的动力。您可以在内容名称列中添加索引,具体取决于它的宽度和读/写比率(并且取决于您对数据库的控制程度,我想)。

判决,如果你有id,请按id选择,如果你没有,并且它不会破坏你的表现,请不要使用内容名称。

答案 1 :(得分:1)

取决于哪一个被索引...所以是的你是对的,在这种情况下使用ID ...如果还需要按名称搜索,使用名称添加另一个索引..

答案 2 :(得分:0)

ID通常在数据库中效果最佳。但是,您受CMS的支配,它可能将这些存储在数组中并使用相同的精确select语句。谁知道?查看源代码并查看发生了什么。

无论你做什么,都要坚持使用所有代码中的一种风格。