- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Переиграть и победить: как анализировать конкурентов для продвижения сайта
С помощью Ahrefs
Александр Шестаков
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Как быстрее будет работать запрос - если выборку делать по полю с числовым форматом (int) или по полю с символьным форматом varchar(20)? Думаю что по числовому полю быстрее, но может быть одинаково?
Как быстрее будет работать запрос - если выборку делать по полю с числовым форматом (int) или по полю с символьным форматом varchar(20)? Думаю что по числовому полю быстрее, но может быть одинаково?
Всё зависит не от типа поля (хотя от него тоже) а от объёма, наличия и состава индекса
Таблица одна. Есть поле с числовым форматом, там простые цифры (10, 55, 47 и т.д.) и есть символьное поле, латинский алфавит, длина 10-15 символов. Чтобы получить числовое значение нужно дополнительно делать к базе запрос, символьное значение уже имеется, вот я и думаю, по символьному полю делать выборку или по числовому, но с доп.запросом к базе. Если скорость выборки по числу и по символам одинаковая, то не нужно будет делать лишний запрос к базе.
antono, по символьному получится быстрее в данном случае. Дополнительный запрос не желателен.
antono, по символьному получится быстрее в данном случае. Дополнительный запрос не желателен.
Далеко не факт.
Описание таблицы в студию + кол-во данных + больше информации о запросе, плз.
Вот подробней:
1 колонка это ID строчек - 1, 2, 3, 4 и т.д.
2 колонка название (names) на английсвом - stol, avto, neon, mama и т.д.
Как эффективней все строчки выбрать например с названием avto, так:
$query = "SELECT * FROM table WHERE ID=2";
или так:
$query = "SELECT * FROM table WHERE names='avto'";
???????
или по производительности оба варианта одинаковы?
Советую привести БД к третьей нормальной форме, тогда все будет быстро ;)
А то что 2 это avto - узнавать ненужно? :) Тогда конечно же WHERE ID=2 быстрее.
Дайте вывод запросов
explain SELECT * FROM table WHERE ID=2
explain SELECT * FROM table WHERE names='avto'
А то что 2 это avto - узнавать ненужно? :)
'
нужно, но из небольшой таблички, а основная будет очень большая.
нужно, но из небольшой таблички, а основная будет очень большая
Всё новые и новые подробности открываются.
Я вот что думаю - попробуйте измерить время выполнения скрипта при обоих вариантах реализации. Ответите после этого сами на свой вопрос.
$query = "SELECT * FROM table WHERE ID=2";
или так:
$query = "SELECT * FROM table WHERE names='avto'";
или по производительности оба варианта одинаковы?
А что мешает сделать в один запрос..например неизвестная таблица называется T1hf, где T1hf.code - связь с `table`
SELECT * FROM `T1hf` AS T1 INNER JOIN `table` AS T2 ON T2.id=T1.code
WHERE T1.id = 'входное целое'
это однозначно быстрее чем 2 запроса, тем более T2.id - primary key (а данных в таблице много ...)
Да и вообще, правильно Вам сказали, нормализуйте модель, добавте поле code в таблицу `table`, сформируйте индекс....