Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«Firebird Π Π£ΠšΠžΠ’ΠžΠ”Π‘Π’Π’Πž Π ΠΠ—Π ΠΠ‘ΠžΠ’Π§Π˜ΠšΠ БАЗ ДАННЫΠ₯Β». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 74

Автор Π₯Π΅Π»Π΅Π½ Π‘ΠΎΡ€Ρ€ΠΈ

БоСдинСния

Для соСдинСний ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ‚ΠΎΡ€ выполняСт процСсс слияния ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° основании соотвСтствия Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, явно ΠΈΠ»ΠΈ нСявно ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… Π² ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠΈ ON. Если ΠΊΠ°ΠΊΠΎΠΉ- Π½ΠΈΠ±ΡƒΠ΄ΡŒ индСкс доступСн для столбца ΠΈΠ»ΠΈ столбцов Π½Π° ΠΎΠ΄Π½ΠΎΠΉ сторонС соСдинСния, ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ‚ΠΎΡ€ создаСт свой Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠΎΡ‚ΠΎΠΊ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ этот индСкс для соотвСтствия ΠΊΠ»ΡŽΡ‡Π° соСдинСния с Π΅Π³ΠΎ коррСспондСнтом ΠΈΠ· Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны соСдинСния. ΠŸΡ€ΠΈ отсутствии индСкса Π½Π° любой ΠΈΠ· сторон ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ сначала ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Π· ΠΎΠ΄Π½ΠΎΠΉ стороны, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ с Ρ†Π΅Π»ΡŒΡŽ Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ ΠΈΠ· Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны соСдинСния.

БравнСния

Когда сравниваСтся индСксированный столбСц для опрСдСлСния, являСтся Π»ΠΈ Π΅Π³ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ большС, Ρ€Π°Π²Π½ΠΎ ΠΈΠ»ΠΈ мСньшС значСния константы, Ρ‚ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ индСкса ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² Ρ‚Π°ΠΊΠΎΠΌ сравнСнии, ΠΈ Π½Π΅ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ строки Π½Π΅ Π²Ρ‹Π±ΠΈΡ€Π°ΡŽΡ‚ΡΡ. ΠŸΡ€ΠΈ отсутствии индСкса всС строки-ΠΊΠ°Π½Π΄ΠΈΠ΄Π°Ρ‚Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒΡΡ ΠΈ ΡΡ€Π°Π²Π½ΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ.

Π§Ρ‚ΠΎ ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ

Π’Π΅Π»ΠΈΡ‡ΠΈΠ½Π° Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, затрачиваСмая Π½Π° поиск Π²ΠΎ всСй Ρ‚Π°Π±Π»ΠΈΡ†Π΅, прямо ΠΏΡ€ΠΎΠΏΠΎΡ€Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Π° количСству строк Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅. ИндСкс для столбца ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ·Π½Π°Ρ‡Π°Ρ‚ΡŒ Ρ€Π°Π·Π½ΠΈΡ†Ρƒ ΠΌΠ΅ΠΆΠ΄Ρƒ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½Ρ‹ΠΌ ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠΌ Π½Π° запрос ΠΈ Π΄ΠΎΠ»Π³ΠΈΠΌ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠ΅ΠΌ. Π’Π°ΠΊ ΠΏΠΎΡ‡Π΅ΠΌΡƒ Π±Ρ‹ Π½Π΅ ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ столбСц?

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ прСпятствия этому состоят Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ индСксы Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ дисковоС пространство, Π° Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅, ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ строк Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ большС Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ для индСксированных столбцов, Ρ‡Π΅ΠΌ для Π½Π΅ индСксированных. ИндСкс Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° измСняСтся элСмСнт Π΄Π°Π½Π½Ρ‹Ρ… Π² индСксированном столбцС, ΠΈ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° строка добавляСтся Π² Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ ΠΈΠ»ΠΈ удаляСтся ΠΈΠ· Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹.

Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ поиска Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ являСтся Π±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½Ρ‹ΠΌ, Ρ‡Π΅ΠΌ Π½Π°ΠΊΠ»Π°Π΄Π½Ρ‹Π΅ расходы ΠΏΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰ΠΈΡ… Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… рСсурсов, Π½ΠΎ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ индСксов. Π’Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ индСкс для столбца, ΠΊΠΎΠ³Π΄Π°:

* условиС поиска часто ссылаСтся Π½Π° столбСц (ИндСкс ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π² поискС Π΄Π°Ρ‚ ΠΈ чисСл, ΠΊΠΎΠ³Π΄Π° оТидаСтся прямоС сравнСниС ΠΈΠ»ΠΈ вычислСниС BETWEEN. ΠŸΠΎΠΈΡΠΊΠΎΠ²Ρ‹Π΅ индСксы для строковых столбцов ΠΏΠΎΠ»Π΅Π·Π½Ρ‹, ΠΊΠΎΠ³Π΄Π° строки ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡŽΡ‚ΡΡ Π½Π° Ρ‚ΠΎΡ‡Π½ΠΎΠ΅ соотвСтствиС ΠΈΠ»ΠΈ Π² ΠΏΡ€Π΅Π΄ΠΈΠΊΠ°Ρ‚Π°Ρ… STARTING WITH ΠΈ CONTAINING. Они Π½Π΅ годятся для ΠΏΡ€Π΅Π΄ΠΈΠΊΠ°Ρ‚Π° LIKE[52].);

* столбСц Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ Π² ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ цСлостности, Π½ΠΎ Π½Π° Π½Π΅Π³ΠΎ часто ссылаСтся условиС Π² JOIN;

* ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ORDER BY часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ столбСц для сортировки Π΄Π°Π½Π½Ρ‹Ρ… (Когда Π½Π°Π±ΠΎΡ€ Π΄Π°Π½Π½Ρ‹Ρ… Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ упорядочСн ΠΏΠΎ нСскольким столбцам, составной индСкс, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ порядку, ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡƒ Π² ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΈ ORDER BY, ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ поиска[53].);

* Π²Π°ΠΌ Π½ΡƒΠΆΠ΅Π½ индСкс со спСцифичСскими характСристиками, Π½Π΅ прСдоставляСмыми Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΈΠ»ΠΈ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌΠΈ индСксами, Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ нСдвоичная сортировка, ΡƒΠ±Ρ‹Π²Π°ΡŽΡ‰Π°Ρ ΠΈΠ»ΠΈ Π²ΠΎΠ·Ρ€Π°ΡΡ‚Π°ΡŽΡ‰Π°Ρ ΡƒΠΏΠΎΡ€ΡΠ΄ΠΎΡ‡Π΅Π½Π½ΠΎΡΡ‚ΡŒ;

* производится Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΊΠ° Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Π½Π°Π±ΠΎΡ€ΠΎΠ² записСй (Π˜Π½Π΄Π΅ΠΊΡΡ‹ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ столбца ΠΈΠ»ΠΈ подходящим ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ упорядочСнныС составныС индСксы ΠΌΠΎΠ³ΡƒΡ‚ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΊΠΈ, условия ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π·Π°Π΄Π°Π½Ρ‹ Π² слоТном ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΈ GROUP BY.).

Π’Ρ‹ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ индСксы для столбцов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅:

* Ρ€Π΅Π΄ΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π² условиях поиска;

* ΡΠ²Π»ΡΡŽΡ‚ΡΡ часто измСняСмыми Π½Π΅ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌΠΈ значСниями, Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈΠ»ΠΈ идСнтификация ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ;

* ΠΈΠΌΠ΅ΡŽΡ‚ нСбольшоС количСство Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… ΠΈΠ»ΠΈ фактичСских Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π² большом количСствС строк;

* ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой Π΄Π²ΡƒΡ…Π·Π½Π°Ρ‡Π½ΠΎΠ΅ ΠΈΠ»ΠΈ Ρ‚Ρ€Π΅Ρ…Π·Π½Π°Ρ‡Π½ΠΎΠ΅ логичСскоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

Когда ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ

НСкоторыС индСксы сами заявят ΠΎ сСбС Π² Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΌ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄Π΅ проСктирования - ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Ρ‡Π΅Ρ€Π΅Π· извСстныС Π²Π°ΠΌ трСбования сортировки, Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΊΠΈ, вычислСний. ΠžΡ‡Π΅Π½ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠ΅ΠΉ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΎΠΉ являСтся консСрвативный ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ созданию индСксов: Π½Π΅ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈΡ…, ΠΏΠΎΠΊΠ° Π½Π΅ станСт ясным ΠΈΡ… польза. ЯвляСтся Ρ…ΠΎΡ€ΠΎΡˆΠ΅ΠΉ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΎΠΉ ΠΎΡ‚Π»ΠΎΠΆΠΈΡ‚ΡŒ созданиС ΡΠΎΠΌΠ½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… индСксов Π΄ΠΎ Ρ‚ΠΎΠ³ΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅, ΠΊΠΎΠ³Π΄Π° Ρƒ вас появится Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ Π½Π°Π±ΠΎΡ€ тСстовых Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ свСдСния ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ слишком ΠΌΠ΅Π΄Π»Π΅Π½Π½Ρ‹Π΅.

ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π° ΠΎΡ‚Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ проСктирования индСксов:

* ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΠ΅ "Π·Π°Π²ΡƒΠ°Π»ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅(tm) ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ", Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°ΠΊΠ»Π°Π΄Ρ‹Π²Π°Ρ‚ΡŒΡΡ тСстированиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΉ ΠΏΠΎΠ»Π½ΠΎΡ‚Ρ‹;

* Π±ΠΎΠ»Π΅Π΅ быстрая идСнтификация Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… источников ΡƒΠ·ΠΊΠΈΡ… мСст;

* ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π½Π΅Π½ΡƒΠΆΠ½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ нСэффСктивного индСксирования.

ИспользованиС CREATE INDEX

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ CREATE INDEX создаСт индСкс ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ столбцов Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹. ИндСкс ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ столбца отыскиваСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ столбСц Π² ΠΎΡ‚Π²Π΅Ρ‚ Π½Π° запрос, Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ индСкс ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… столбцов отыскиваСт ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ столбцов.

Бинтаксис:


CREATE [UNIQUE] [ASC[ENDING] | DESC[ENDING]]

INDEX имя-индСкса ON имя-Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ (столбСц [, столбСц ...]);

ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ элСмСнты

ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ элСмСнты Π² синтаксисС CREATE INDEX ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅:

* CREATE INDEX имя-индСкса - ΠΈΠΌΠ΅Π½ΡƒΠ΅Ρ‚ индСкс. Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² всСх Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ ΠΈ столбцов. Π₯ΠΎΡ€ΠΎΡˆΠ°Ρ идСя ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ систСму ΠΈΠΌΠ΅Π½ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² схСмы, это Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π»ΡƒΡ‡ΡˆΠ΅ΠΉ докумСнтированности;


! ! !

ΠŸΠ Π˜ΠœΠ•Π§ΠΠΠ˜Π•. Начиная с вСрсии 1.5 ΠΈ Π²Ρ‹ΡˆΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ автоматичСскоС ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ индСкса ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ Π΅Π³ΠΎ ограничСния.

. ! .


* имя-Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹- имя Ρ‚ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, для ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ создаСтся индСкс;

столбСц [, столбСц ...] - имя столбца ΠΈΠ»ΠΈ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ запятыми список ΠΈΠΌΠ΅Π½ столбцов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ индСкса. ΠŸΠΎΡ€ΡΠ΄ΠΎΠΊ столбцов Π·Π½Π°Ρ‡ΠΈΠΌ для индСксов. Π‘ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ см. Π² Ρ€Π°Π·Π΄. "Π˜Π½Π΄Π΅ΠΊΡΡ‹ ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… столбцов".


ΠŸΡ€ΠΈΠΌΠ΅Ρ€

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ объявлСниС создаСт Π½Π΅ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π²ΠΎΠ·Ρ€Π°ΡΡ‚Π°ΡŽΡ‰ΠΈΠΉ индСкс для столбца LAST_NAME (фамилия Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ°) Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ PERSON. Он ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌ Π² условиях поиска Ρ‚ΠΈΠΏΠ° WHERE LAST_NAME = 'Johnston' ΠΈΠ»ΠΈ WHERE LAST_NAME STARTING WITH 'Johns':


CREATE INDEX LAST_NAME_X ON PERSON(LAST_NAME);

ΠΠ΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ элСмСнты


UNIQUE

ΠšΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово UNIQUE ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ использовано Π² индСксах, для ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π·Π°ΠΏΡ€Π΅Ρ‚ΠΈΡ‚ΡŒ Π΄ΡƒΠ±Π»ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ записи. Π‘Ρ‚ΠΎΠ»Π±Π΅Ρ† ΠΈΠ»ΠΈ Π³Ρ€ΡƒΠΏΠΏΠ° провСряСтся Π½Π° Π΄ΡƒΠ±Π»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ значСния, ΠΊΠΎΠ³Π΄Π° индСкс создаСтся, Π° Ρ‚Π°ΠΊΠΆΠ΅ для ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° строка добавляСтся ΠΈΠ»ΠΈ измСняСтся.

Π£Π½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ индСксы ΠΈΠΌΠ΅ΡŽΡ‚ смысл, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠΎΠ³Π΄Π° Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΡ… характСристик элСмСнта Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ Π³Ρ€ΡƒΠΏΠΏΡ‹. НапримСр, Π²Ρ‹ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΎΠΉ индСкс для столбца, хранящСго Ρ„Π°ΠΌΠΈΠ»ΠΈΡŽ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ°, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ фамилиям Π½Π΅ присуща ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ. И Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚, ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ индСкс являСтся Ρ…ΠΎΡ€ΠΎΡˆΠ΅ΠΉ ΠΈΠ΄Π΅Π΅ΠΉ для столбца, содСрТащСго Π½ΠΎΠΌΠ΅Ρ€ ΡΠΎΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ обСспСчСния, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΈΠ΅ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΊΠ»ΡŽΡ‡Π° сообщаСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ ΠΎ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰Π΅ΠΉ внимания ошибкС.


ΠŸΡ€ΠΈΠΌΠ΅Ρ€

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ создаСтся ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ индСкс для Ρ‚Ρ€Π΅Ρ… столбцов Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΈΠ½Π²Π΅Π½Ρ‚Π°Ρ€ΠΈΠ·Π°Ρ†ΠΈΠΈ для гарантирования Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ систСма Ρ…Ρ€Π°Π½ΠΈΡ‚ Π½Π΅ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠΉ строки для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΈ Ρ†Π²Π΅Ρ‚Π° элСмСнта:


CREATE UNIQUE INDEX STK_SIZE_COLOR_UQX

ON STOCK_ITEM (PRODUCT_ID, SIZE, COLOR);


Π—Π°ΠΌΠ΅Ρ‚ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ индСкс Π½Π΅ являСтся ΠΊΠ»ΡŽΡ‡ΠΎΠΌ. Если Π²Π°ΠΌ трСбуСтся ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ для ссылочных Ρ†Π΅Π»Π΅ΠΉ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ для этого ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ UNIQUE для столбца (столбцов). ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΎΠ± использовании ограничСния UNIQUE см. Π³Π»Π°Π²Ρƒ 16.


Поиск Π΄ΡƒΠ±Π»ΠΈΠΊΠ°Ρ‚ΠΎΠ²

ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ индСкс для столбца, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΠΆΠ΅ содСрТит Π΄ΡƒΠ±Π»ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ значСния. ΠŸΠ΅Ρ€Π΅Π΄ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ индСкса ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ SELECT для поиска Π΄ΡƒΠ±Π»ΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ… элСмСнтов Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅. НапримСр, Π΄ΠΎ создания ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ индСкса для PRODUCT_NAME Π’ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ PRODUCT ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π»ΡŽΠ±Ρ‹Π΅ Π΄ΡƒΠ±Π»ΠΈΠΊΠ°Ρ‚Ρ‹ Π² этом столбцС:


SELECT PRODUCT_ID, UPPER(PRODUCT_NAME) FROM PRODUCT

GROUP BY PRODUCT_ID, UPPER(PRODUCT_NAME)

HAVING COUNT(*) > 1;


! ! !

ΠŸΠ Π˜ΠœΠ•Π§ΠΠΠ˜Π•. ΠŸΠ΅Ρ€Π΅Π²ΠΎΠ΄ значСния столбца Π² Π²Π΅Ρ€Ρ…Π½ΠΈΠΉ рСгистр, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ поиск Π½Π΅ Ρ‡ΡƒΠ²ΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΊ рСгистру, Π½Π΅ являСтся Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΌ с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π΄Π°Π½Π½Ρ‹Ρ…. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Ссли ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π±Ρ‹Π»Π° "ΠΏΠΎΠ»ΠΎΠΌΠ°Π½Π°" Π²Π²ΠΎΠ΄ΠΎΠΌ ΠΎΡˆΠΈΠ±ΠΎΡ‡Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΡ‚Ρ‹ΡΠΊΠ°Ρ‚ΡŒ всС Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Π΅ записи.

. ! .


Как Π²Ρ‹ поступитС с Π΄ΡƒΠ±Π»ΠΈΠΊΠ°Ρ‚Π°ΠΌΠΈ, зависит ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‚ Π² Π²Π°ΡˆΠΈΡ… бизнСс- ΠΏΡ€Π°Π²ΠΈΠ»Π°Ρ…, ΠΈ ΠΎΡ‚ количСства Π΄ΡƒΠ±Π»ΠΈΠΊΠ°Ρ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½ΡƒΠΆΠ½ΠΎ ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ, Ρ…Ρ€Π°Π½ΠΈ- мая ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° являСтся Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ эффСктивным способом это ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ. Π₯Ρ€Π°Π½ΠΈΠΌΡ‹Π΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ ΠΎΠ±ΡΡƒΠΆΠ΄Π°ΡŽΡ‚ΡΡ Π² Π³Π»Π°Π²Π°Ρ… 28-30.


ASC[ENDING] ΠΈΠ»ΠΈ DESC[ENDING]

ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ слова ASC[ENDING] ΠΈ DESC[ENDING] ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ порядок сортировки индСкса, ASC Π·Π°Π΄Π°Π΅Ρ‚ сортировку индСкса ΠΎΡ‚ мСньшСго ΠΊ Π±ΠΎΠ»ΡŒΡˆΠ΅ΠΌΡƒ. Оно являСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠΏΡƒΡ‰Π΅Π½ΠΎ, DESC сортируСт значСния ΠΎΡ‚ большСго ΠΊ ΠΌΠ΅Π½ΡŒΡˆΠ΅ΠΌΡƒ ΠΈ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΡƒΠΊΠ°Π·Π°Π½ΠΎ, Ссли трСбуСтся ΡƒΠ±Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ индСкс. Π£Π±Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ индСкс ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌ для запросов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΡ‚Ρ‹ΡΠΊΠΈΠ²Π°ΡŽΡ‚ наибольшиС значСния (наибольший возраст, самый послСдний, самый большой ΠΈ Ρ‚.Π΄.), Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΈ упорядочСнном поискС ΠΈΠ»ΠΈ для Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ отсортированы Π² ΡƒΠ±Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΌ порядкС.


ΠŸΡ€ΠΈΠΌΠ΅Ρ€

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ создаСт ΡƒΠ±Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ индСкс для Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… employee: