我有一个CMS,它有两种查询内容的方法。一个按id查询,另一个按内容名称查询。
ContentManager.Select(12);
或
ContentManager.Select("Content Name");
我看到第一个的方式会更快,因为id是一个索引,不涉及字符串比较。而第二个更容易使用。
出于维护原因,我曾使用第二个工作。但是,如果我改变了内容名称,那么Select显然不会再起作用了。但是Id应该只是数据库级别,而且从CMS表单中看不到。
编辑:此外,如果要删除并重新插入内容,则字符串选择将起作用,而id选择则不会。
我不能在这两种方法之间找到共同点。
答案 0 :(得分:1)
通过主键进行选择可以获得最佳性能,但这并不总是您唯一的动力。您可以在内容名称列中添加索引,具体取决于它的宽度和读/写比率(并且取决于您对数据库的控制程度,我想)。
判决,如果你有id,请按id选择,如果你没有,并且它不会破坏你的表现,请不要使用内容名称。
答案 1 :(得分:1)
取决于哪一个被索引...所以是的你是对的,在这种情况下使用ID ...如果还需要按名称搜索,使用名称添加另一个索引..
答案 2 :(得分:0)
ID通常在数据库中效果最佳。但是,您受CMS的支配,它可能将这些存储在数组中并使用相同的精确select语句。谁知道?查看源代码并查看发生了什么。
无论你做什么,都要坚持使用所有代码中的一种风格。