Разница в производительности происходит от неявного использования оператора индексации и доступа к y
-ому значению x
-го «столбца» array
. После назначения a
(a = array[x][y]
) нет необходимости выполнять эти операции для получения действительного значения в array[x][y]
- оно легко доступно в a
.
Точные различия в производительности зависят от реализации. В случае NumPy
производительность array[x][y]
была бы намного лучше, чем в случае списков собственных питонов, благодаря реализации, точно настроенной для массивов однородного типа и непрерывного блока выделения памяти.
Я рекомендую вам рассчитать время фактического использования , чтобы увидеть влияние в вашем конкретном случае.
A UNIQUE
ограничение является частью стандарта ISO/ANSI SQL, тогда как индексы - то, не потому что Стандарт является агностиком реализации. SQL Server, вместе с большей частью SQL DBMSs, будет использовать индекс для реализации a UNIQUE
ограничение.
Возможно, использование UNIQUE
вместо того, чтобы индексировать в сценарии SQL является немного более портативным, но поскольку всегда собственный синтаксис не должен быть исключен, если он обеспечивает возможности для оптимизации и т.д.
SQL Server создаст индекс для реализации ограничений UNIQUE. Вы видите ссылку на уникальный индекс, который используется для осуществления ограничений на уникальность данных в представлении sys.key_constraints (в 2005 — извините, я не знаю эквивалент 2000 года). Но обе версии будут использовать индекс при запросах.
Различие - то, что при создании индекса, Вы имеете больше контроля над тем, как он создается. В частности, можно включать дополнительные столбцы, которые могут часто искаться наряду с ключом.
Обе опции позволят, Вы для "игнорирования делаете дубликаты ключа" на существующих данных, но оба повысят ошибку, при попытке вставить новое значение, которое копирует существующий.
Нет никакого практического различия между ограничением на уникальность данных и уникальным индексом кроме того, что ограничение на уникальность данных также перечислено как ограничительный объект в базе данных.