Помощь Влияет ли количество символов в поле ID товара на скорость выполнения запроса в БД?

leon111221

Постоялец
Регистрация
5 Сен 2015
Сообщения
117
Реакции
118
Вопрос к тем кто разбирается в базах данных. Влияет ли количество символов в поле ID товара на скорость вывода страницы товара? То есть если сравнивать: есть товар и у него id = 1 и все его атрибуты привязаны к товару с id = 1, а есть другой товар в котором столько же атрибутов и id = 642214. Влияет ли это на скорость загрузки страницы?
 
Влияет ли количество символов в поле ID товара на скорость вывода страницы товара?
Напрямую не влияет.
В некоторых условиях может иметь значение где именно в таблицах находится запись с конкретным ID товара, т.е. в начале или в конце таблицы.
 
Напрямую не влияет.
В некоторых условиях может иметь значение где именно в таблицах находится запись с конкретным ID товара, т.е. в начале или в конце таблицы.
То есть если не в порядке возрастания, а вразброс?
 
То есть если не в порядке возрастания, а вразброс?
Это он о случае когда индексы не стоят по полю ID, тогда для поиска приходится перечитать всю таблицу. Особенно если в эту таблицу добавить много букв текста, 100500 столбцов и побольше всяких varchar, чтобы гарантированно читать всю таблицу при запросе последних id. Но даже в таком случае надо сотни тысяч или миллионы записей чтобы заметить тормоза.

Плюс если постараться можно составить хитрый запрос с использованием RegExp, inner join по полям без индекса, потом это всё завернуть в кучу подзапросов, сделать побольше UNION и хитро отсортировать и сгруппировать, то можно даже на оптимально спроектированной таблице с правильными индексами добиться 10 минутных запросов. Кстати интересная идея - оптимизации наоборот с выдачей нужного результата ;)

В общем случае, если стоит индекс по полю и у нас простой запрос типа where id = 100500, то выполняться будет одинаково быстро даже при сотнях миллионов строк в таблице.
 
Конкретизирую.
В дефолтном Опенкарте проставлены только первичные индексы. При этом массово используется связывание таблиц без дополнительных индексов и в результате можете получать значительное расхождение времени выполнения запросов для разных product_id.
Если по завершению конфигурирования и настройки Опенкарта проставить необходимые индексы и оптимизировать таблицы, то время выполнения запросов для разных product_id станет мало различимым.
 
Последнее редактирование:
По идее влиять не должно так как у меня у клиента есть товары с длиной ID до 25 символов. И скорость работы БД это этого не страдает.
 
Современные серверы работают на таких скоростях , что разницы можно и не заметить.. Для вас 0.000000000001 или 0.000000000002 секунды не уловимы
 
Максимально допустимый размер вывода составляет 255 символов.
 
Максимально допустимый размер вывода составляет 255 символов.
С чего вы взяли?
id скорее всего будет типа int, а это максимум 10 символов и то не любых Для просмотра ссылки Войди или Зарегистрируйся
А если извратится, то можно поставить любой тип и тогда ограничений нет.
 
Назад
Сверху