按段查询或按ID查询?

Nic*_*ick 5 php mysql cakephp

通常,当我创建需要在URL中添加段的应用程序时,我通过数据库中的段查询以获取内容(当然,在段字段上具有索引)。使用典型的LAMP堆栈(与PHP和MySQL一起使用),从数据库角度来看,这样做的利弊是什么?总是通过id查询并简单地为子弹创建某种排序或路由会更有意义吗?此应用程序设计会带来任何安全问题吗?

具体来说,我正在使用cakePHP,因此,如果有任何特定于蛋糕的答案,将不胜感激,但不是必须的。

Dej*_*vic 0

如果您绝对确定 slug 不会改变,则可以使用它。但数字可能更快、更安全(这是肯定的)。

我刚刚在包含 1 000 000 行的数据库上运行查询,您可以看到按 ID 的速度快了 230 倍(尽管主题未建立索引)。除此之外,就像斯拉普内尔上校所说,如果你换个话题怎么办?你的 URL 将会被破坏,并且你无法记住主题的每一个变化。数字就是数字,计算机与数字一起工作:) JK

SELECT tid FROM `forum_threads` WHERE subject = "New BMW X5";
Showing rows 0 - 0 (1 total, Query took 0.0230 sec) 

SELECT tid FROM `forum_threads` WHERE tid = 19906;
Showing rows 0 - 0 (1 total, Query took 0.0001 sec) 
Run Code Online (Sandbox Code Playgroud)