Эффект первичного ключа на производительность в SQLite

Когда Вы добавляете .gitignore файл, если Вы собираетесь поместить какую-либо сумму содержания в нем (что Вы хотите, чтобы Мерзавец проигнорировал), Вы могли бы хотеть добавить одну строку только с звездочкой *, чтобы удостовериться, что Вы не добавляете проигнорированное содержание случайно.

5
задан Mahmoud Al-Qudsi 6 August 2009 в 07:08
поделиться

2 ответа

Индекс первичного ключа используется для поиска строки для данного первичного ключа. Он также используется для обеспечения уникальности значений первичного ключа.

Если вы выполняете поиск в данных с использованием других столбцов, индекс первичного ключа не будет использоваться и, как таковой, не принесет никакого выигрыша в производительности. Однако само его существование не должно оказывать отрицательного воздействия на производительность.

Ненужный индекс тратит впустую дисковое пространство и замедляет выполнение операторов INSERT и UPDATE. Это не должно отрицательно сказаться на производительности запроса.

4
ответ дан 15 December 2019 в 01:08
поделиться

Если вы действительно не знаете ' т использовать этот идентификатор, что вы не бросаете этот столбец + первичный ключ? Единственная причина сохранить в рабочем состоянии неиспользуемый столбец идентификатора первичного ключа - сделать возможным создание отношения «главный-подробный» с другой таблицей.

Другая возможность - сохранить столбец, но не использовать первичный ключ. Это будет означать, что приложение должно заботиться о предоставлении уникального идентификатора для каждого оператора вставки. Перед и после каждой пакетной операции вы должны проверять, остается ли этот столбец уникальным. Это не работает, например, в MySQL и Oracle из-за проблем с множественным параллелизмом, но работает в sqlite.

0
ответ дан 15 December 2019 в 01:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: