Предположим, у меня есть MySQL база данных под именем records
. Схема таблицы будет выглядеть следующим образом, где id
является ключом индекса, а url
уникален:
id BINGINT(20) UNSIGNED AUTO_INCREMENT
num_chars SMALLINT(4) UNSIGNED
url VARCHAR(1000) UNIQUE
Это будет представление данных таблицы, в основном:
-------------------------------------------
| id | num_chars | url |
-------------------------------------------
| 1 | 22 | https://www.google.com |
| 2 | 17 | https://yahoo.com |
| 3 | 16 | https://bing.com |
-------------------------------------------
num_chars
- это количество символов в URL.
У меня такой вопрос, учитывая тот факт, что эта таблица, вероятно, будет содержать несколько миллионов записей: есть ли улучшение производительности этого запроса:
SELECT * FROM records WHERE num_chars = 17 AND url = 'https://yahoo.com';
Над этим:
SELECT * FROM records WHERE url = 'https://yahoo.com';
Я знаю, что целочисленные запросы более эффективны, чем строковые (поправьте меня, если я ошибаюсь), поэтому мне интересно, будет ли фильтрация по num_chars
до url
будет означать повышение эффективности.
Кстати, преимущество в этом случае заключается в том, что я могу легко вычислить num_chars
из url
перед выполнением запроса MySQL, используя PHP, Java, Python, et c.