Выбор схемы URL блога с учетом производительности Python - PullRequest
1 голос
/ 08 февраля 2010

Я пишу блог на Python и дошел до того, что мне нужно выбрать схему URL для использования. Соблазнительно просто перечислить записи начала и конца, например:

http://myblog.com/1
http://myblog.com/2
...
http://myblog.com/1568

А на стороне сервера я бы просто разместил записи в блоге в списке python. Однако я опасаюсь, что по мере увеличения списка будет происходить медленный переход к запрашиваемой записи. Я не знаю, насколько большими (как в памяти) будут записи, поэтому я не могу сохранить их в массиве более низкого уровня (если он есть даже в python) или в таблице фиксированного размера любого типа.

Другой вариант, о котором я думаю, - это префикс URL-адреса записи к году:

http://myblog.com/2010/1
http://myblog.com/2010/2
http://myblog.com/2011/1

Полагаю, это ускоряет процесс, поскольку я могу хранить записи в древовидной структуре:

entries = {
    '2010': [entry1, entry2, ...],
    '2012': [entry1, entry2, ...]
}

Как бы вы это сделали? Я оставляю дискуссию открытой, поскольку мне интересно, как люди думают здесь.

Спасибо!

Ответы [ 2 ]

1 голос
/ 08 февраля 2010

Разница в производительности между ними будет незначительной. Издержки списка или словаря будут намного меньше, чем размер текста в записях.

Хранение всего в памяти не очень хорошее решение. Вам следует сохранить записи на диске (база данных, плоский файл и т. Д.), А затем (при необходимости) использовать кэш для хранения наиболее часто используемых записей в памяти.

0 голосов
/ 08 февраля 2010

Как насчет сопоставления URL-адресов с записями блога с использованием словаря? Это просто, и словарь имеет O (1) поиск, поэтому он будет быстрым, даже если в вашем блоге много записей.

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