Корректно ли я понимаю процесс создания индекса таблицы и его влияние на производительность при редактировании записи? Если я правильно понял, если мы создаем индекс, таблица сортирует записи по указанным столбцам, поэтому создание одного составного индекса, например, на (name, brand, price), равносильно созданию трех индексов на отдельных столбцах (name, brand, price) поочередно задающих порядок сортировки? В связи с этим, при редактировании записи операция INSERT может выполняться медленно только при обновлении одного из индексированных полей, например, при изменении name выполнится медленнее, чем при изменении price, так как price является последним в списке индексов для сортировки?
Да, вы правильно понимаете работу индексов в таблице. Индексы в СУБД служат для ускорения выполнения запросов, так как они позволяют СУБД быстро находить нужные записи, используя их значения в индексированных столбцах. При создании составного индекса на нескольких столбцах (например, на (name, brand, price)), данные будут сортироваться сначала по столбцу name, затем по brand, и в конце по price. Если задан индекс на каждом из этих столбцов отдельно, то каждый индекс будет содержать отсортированные значения по своему столбцу. При изменении записи в таблице, операция INSERT будет выполняться медленнее, если изменяется индексированный столбец, так как это потребует пересортировки данных в индексе. Если изменяемый столбец является последним в составном индексе, то это может повлиять на производительность. Однако, обычно в больших таблицах разница в производительности при изменении записей из-за индексов несущественна, и индексы все же значительно улучшают производительность при выполнении запросов.
Если я правильно понял, когда мы создаем индекс, у нас таблица изменяет порядок записей внутри себя сортируя их по указанным столбцамнет, никакой порядок не меняется, индекс это отдельные от таблицы данные
И один индексравен тому, если бы мы создали три индекса в такой последовательностинет, перестань уже придумывать и начни читать учебники и документацию
Которые бы по очереди друг за другом добавляли правило сортировки в таблице, верно?опять ты что себе напридумал, нет никаких правил сортировки в таблице, индексы просто могут использоваться для ускорения сортировки
Причем при изменении name обновление будет происходить дольше, чем при изменении price, потому что у нас price последняя в нашей очереди индексов по сортировке?когда фантазию уже не остановить
Нет, ни одно из утверждений не является верным.
btree индекс - это структура, располагающаяся отдельно, сбоку, от таблицы. Порядок данных в таблице никак не меняется от создания индекса.
Индекс btree(a,b,c) и три индекса btree(a), btree(b), btree(c) - разные вещи.