Запрос по слагу или запрос по идентификатору? - PullRequest
5 голосов
/ 31 марта 2011

Как правило, когда я создаю приложения, для которых нужны URL-адреса слагов, я запрашиваю контент с помощью slug в базе данных (конечно, с индексом в поле slug).Используя типичный стек LAMP (с PHP и MySQL), в чем преимущество или недостаток этого с точки зрения базы данных?Будет ли больше смысла всегда запрашивать по идентификатору и просто создавать какие-то сортировки или маршруты для слизней?Может ли этот дизайн приложения создать какие-либо проблемы с безопасностью?

Я использую cakePHP, в частности, поэтому, если есть какие-либо специфичные для торта ответы, это будет оценено, но не обязательно.

Ответы [ 2 ]

0 голосов
/ 31 марта 2011

Если вы абсолютно уверены, что слизняк не изменится, вы можете использовать его. Но цифры, вероятно, быстрее и безопаснее (это точно).

Я только что выполнил запросы к базе данных с 1 000 000 строк, вы можете видеть, что по идентификатору в 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) 
0 голосов
/ 31 марта 2011

Две вещи: Имейте в виду, что значения слизней часто должны быть уникальными. Кроме того, при использовании схемы базы данных i18n для запросов SQL к таблице требуется дополнительное соединение (слаг обычно связан с языком)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...