CMS для потрала с нагрузкой

Sly32
На сайте с 29.03.2012
Offline
303
#31
Владимир #:
для минимизации нагрузки на базу, новости должны работать через псевдо ЧПУ, то есть выгребаться они должны по идентификатору, но в адресе могут быть также человекопонятные фразы, например site.com/4321-Novost.html, то есть новость будет выгребаться из базы не по текстовому ключу, а по идентификатору 4321

Перечитал 3 раза и не понял о чем речь вообще? При чем тут ЧПУ и запросы в базу?

ЧПУ - это всего навсего роутинг, который перенаправляет на код, который будет делать запросы в БД, например. Как вы его оформляете - никакого значения не имеет в плане скорости. 

WS
На сайте с 01.11.2008
Offline
135
#32
Sly32 #:

Перечитал 3 раза и не понял о чем речь вообще? При чем тут ЧПУ и запросы в базу?

ЧПУ - это всего навсего роутинг, который перенаправляет на код, который будет делать запросы в БД, например. Как вы его оформляете - никакого значения не имеет в плане скорости. 

Wordpress, адрес поста:

site.ru/address/

выборка из базы по строковому ключу "address "

DLE-News, адрес поста:

site.ru/1-address.html

выборка из базы по числовому идентификатору "1" (primary key)

разницу чувствуете?

у вас есть сомнения, что выборка по длинному строковому ключу медленнее, чем по primary key?

Aisamiery
На сайте с 12.04.2015
Offline
293
#33
Владимир #:
лол, наверное на озоне, вайлдбериз, яндекс маркете с сотней миллионов товаров дураки работают, раз используют псевдо ЧПУ, выборку по числовому идентификатору, так?

Ну вы же наверняка в валдбериез и яндекс маркете архитектором работаете, ведь так? =)))

Я конечно не работаю там, но предполагаю, что используют это для такой штуки как шардинг. Так как базу данных сложно масштабировать горизонтально, то принимают решение, что например ID товаров с 1 до 1кк мы храним на сервере А, а с 1кк до 2кк на сервере Б, без ID в урле это действительно сложно делать. Вы если мне не верите, можете сделать табличку на 2 поля, число по праймари и varchar на пусть 100 символов с индексом желательно уникальным и запустить тест выборки по полям. Я это все к чему, я работаю на проектах подобных что вы озвучили, и мы, например, используем как ключи uuid, а не числа.

Вот вам пример такой таблицы, есть ключ праймари и ключ по url (строке), для БД это один и тот же тип индекса, поэтому я не очень понимаю что вы мне тут пытаетесь доказать, я даже не уверен что у вас есть понимание работы всего этого, сделать эксперимент же делов то полу часа, зато сформируете свое мнение основанное на опыте и практике, а не кто то где то сказал.


Разработка проектов на Symfony, Laravel, 1C-Bitrix, UMI.CMS, OctoberCMS
lutskboy
На сайте с 22.11.2013
Offline
172
#34
логично что по ID быстрее чем по varchar. на практике хз. нужно тестить
Aisamiery
На сайте с 12.04.2015
Offline
293
#35
lutskboy #:
логично что по ID быстрее чем по varchar. на практике хз. нужно тестить

Чем логичнее? =) То что знаков больше? Так по вашему ID 10000000 будет искаться дольше чем строка address

Ключи в БД не выглядят как их значения, то что вы видите цифру 1 ключ это не цифра 1 =))

WebAlt
На сайте с 02.12.2007
Offline
251
#36
krock :
Спасибо!

Пожалуйста, сразу забей этим заниматься.:)  Любая CMS подойдёт, когда может начать кто-то ходить. :)

Sly32
На сайте с 29.03.2012
Offline
303
#37
Владимир #:

выборка из базы по строковому ключу "address "

OMG! ты реально не понимаешь что такое роутинг и думаешь: что если ты набрал в строке 

site.ru/address/

это сразу привело к тому что поехал запрос в БД???

API тебе ничего не говорит???

lutskboy
На сайте с 22.11.2013
Offline
172
#38
Aisamiery #:
Чем логичнее? =) То что знаков больше? Так по вашему ID 10000000 будет искаться дольше чем строка address

нет. я к тому что например  ID можно генерить самому. уник. допустим 8-10 символов. в то время как slug новости может быть длинным. не все новости 

1-address.html

будут и такие

Старовойт: Михайловский ГОК второй раз за утро атаковал украинский дрон

Песков: американские танки горят, то же самое будет и с самолетами США

Рособрнадзор: выпускники уже в июне смогут пересдавать ЕГЭ по предмету на выбор

C
На сайте с 22.08.2012
Offline
104
#39
Aisamiery #:

Ключи в БД не выглядят как их значения, то что вы видите цифру 1 ключ это не цифра 1 =))

В b-tree? С чего бы вдруг? Для целочисленных значений используется метод идентичности функции, то есть числовой индекс остаётся исходным числом. Для распределения/поиска по листам b-tree, соответственно, используется либо модульность, либо мультипликация. Хешировать целое число неиденитичной функцией - явная изобыточность.

Sly32
На сайте с 29.03.2012
Offline
303
#40
chaturanga #:
Хешировать целое число неиденитичной функцией - явная изобыточность.

А разве индексы в БД это не массив хэшей? Тут избыточность мне кажется не причем...

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий