этот ответ основан на моем личном мнении. Я использую свою математическую логику, чтобы ответить
второй вопрос был о границе, где остановиться. Сначала давайте сделаем некоторый математический расчет, предположим, что у нас есть N строк с L полями в таблице, если мы проиндексируем все поля, мы получим L новых индексных таблиц, где каждая таблица будет Сортируйте осмысленно данные поля индекса, на первый взгляд, если ваша таблица имеет вес W, она станет W * 2 (1 тера станет 2 тера), если у вас 100 больших таблиц (я уже работал в проекте, где номер стола был около 1800 (таблица) вы потратите в 100 раз больше места (100 тера), это далеко не мудро.
Если мы будем применять индексы во всех таблицах, нам придется подумать об обновлениях индексов, если один запуск запускает обновление всех индексов, то это выбор всех неупорядоченных эквивалентов во времени
Исходя из этого, я прихожу к выводу, что в этом сценарии, если вы потеряете это время, предпочтительнее потерять его в выборе или обновлении, потому что, если вы выберете поле, которое не проиндексировано, вы не активируете другой выбор для всех поля, которые не проиндексированы
что индексировать?
внешние ключи: является обязательным на основе
первичный ключ: я еще не уверен в этом, может быть, кто-то прочитает это, может помочь в этом случае
другие поля: первый естественный ответ - это половина оставшихся полей, почему: если вы должны индексировать больше, вы не далеко от лучшего ответа, если вы должны индексировать меньше, вы тоже не далеко, потому что мы знаем, что индекс не плох и все проиндексировано тоже плохо.
из этих 3 пунктов я могу заключить, что если у нас есть L полей, состоящих из K ключей, предел должен быть где-то около ((L-K)/2)+K
более или менее на L / 10
этот ответ основан на моей логике и личных ценах