Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° эффСктивных ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ Π² ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ начинаСтся с Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π° β€” ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΉ структуры Π΄Π°Π½Π½Ρ‹Ρ…. Ошибка Π½Π° этапС проСктирования ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ написания ΠΊΠΎΠ΄Π° ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ΡΠ΅Ρ€ΡŒΠ΅Π·Π½ΠΎΠΌΡƒ падСнию ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ систСмы Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ. Π’Ρ‹Π±ΠΎΡ€ Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½Ρ‹Ρ… Π² 1Π‘ β€” это Π½Π΅ просто тСхничСская Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, Π° стратСгичСскоС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, Π²Π»ΠΈΡΡŽΡ‰Π΅Π΅ Π½Π° ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ выполнСния запросов ΠΈ ΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΠ΅ памяти сСрвСром. МногиС Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠ΅ программисты ΠΏΡ€Π΅Π½Π΅Π±Ρ€Π΅Π³Π°ΡŽΡ‚ строгой Ρ‚ΠΈΠΏΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ, полагаясь Π½Π° ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹, Ρ‡Ρ‚ΠΎ являСтся Π³Ρ€ΡƒΠ±ΠΎΠΉ ошибкой Π² высоконагруТСнных систСмах.

ПониманиС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° Ρ…Ρ€Π°Π½ΠΈΡ‚ ΠΈ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ. Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ Ρ‚ΠΈΠΏΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΈΡ… влияниС Π½Π° ΠΈΠ½Π΄Π΅ΠΊΡΠ°Ρ†ΠΈΡŽ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Π»ΡƒΡ‡ΡˆΠΈΠ΅ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ. Π’Ρ‹ ΡƒΠ·Π½Π°Π΅Ρ‚Π΅, ΠΊΠΎΠ³Π΄Π° стоит ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹, Π° ΠΊΠΎΠ³Π΄Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ слоТным ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ….

Π€ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ Ρ‚ΠΈΠΏΠΈΠ·Π°Ρ†ΠΈΠΈ Π² 1Π‘

ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ динамичСской Ρ‚ΠΈΠΏΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ, Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ значСния Ρ€Π°Π·Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² Π² Ρ€Π°Π·Π½ΠΎΠ΅ врСмя выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Однако такая Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ ΠΈΠΌΠ΅Π΅Ρ‚ свою Ρ†Π΅Π½Ρƒ. Когда Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Π±Π΅Π· указания ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° ΠΈΠ»ΠΈ с ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ слишком ΡˆΠΈΡ€ΠΎΠΊΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡ€Π° Ρ‚ΠΈΠΏΠΎΠ² (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π‘Ρ‚Ρ€ΠΎΠΊΠ°, Число, Π”Π°Ρ‚Π°), компилятор Π²Ρ‹Π½ΡƒΠΆΠ΄Π΅Π½ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅ спСциализированного.

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

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, явноС ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠΎΠ² ΡƒΠ»ΡƒΡ‡ΡˆΠ°Π΅Ρ‚ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΡΡ‚ΡŒ ΠΊΠΎΠ΄Π° ΠΈ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ ΠΎΡ‚Π»Π°Π΄ΠΊΡƒ. ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€ запросов ΠΈ встроСнный Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ ΠΊΠΎΠ΄Π° ΠΌΠΎΠ³ΡƒΡ‚ Ρ‚ΠΎΡ‡Π½Π΅Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ ошибки, Ссли Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Ρ‹ явно. НСявная типизация часто скрываСт логичСскиС ошибки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… условиях Π²Π²ΠΎΠ΄Π° Π΄Π°Π½Π½Ρ‹Ρ…, услоТняя поиск ΠΏΡ€ΠΈΡ‡ΠΈΠ½ сбоСв.

πŸ’‘

ВсСгда ΠΎΠ±ΡŠΡΠ²Π»ΡΠΉΡ‚Π΅ Ρ‚ΠΈΠΏ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π΅Ρ‘ создания, Π΄Π°ΠΆΠ΅ Ссли каТСтся, Ρ‡Ρ‚ΠΎ это ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ. Π­Ρ‚ΠΎ экономит врСмя Π½Π° ΠΎΡ‚Π»Π°Π΄ΠΊΡƒ Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ.

ВлияниС Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ запросов

Одним ΠΈΠ· самых ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½Ρ‹Ρ… аспСктов Π²Ρ‹Π±ΠΎΡ€Π° Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½Ρ‹Ρ… являСтся ΠΈΡ… влияниС Π½Π° Ρ€Π°Π±ΠΎΡ‚Ρƒ с Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ… (Π‘Π£Π‘Π”). ΠŸΡ€ΠΈ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ запроса ΠΊ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ Π±Π°Π·Π΅ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° транслируСт ΠΊΠΎΠ΄ 1Π‘ Π² SQL-запрос (ΠΈΠ»ΠΈ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ язык запросов Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ вСрсии). Если Π² условиях ΠΎΡ‚Π±ΠΎΡ€Π° (Π“Π”Π•) ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ поля с Π½Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ ΠΈΠ»ΠΈ составным Ρ‚ΠΈΠΏΠΎΠΌ, ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ‚ΠΎΡ€ запросов ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚ΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ использования индСксов.

Рассмотрим ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»Π΅ Π² рСгистрС свСдСний ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚ΠΈΠΏ БправочникБсылка.НомСнклатура, Π° Π² запросС ΠΌΡ‹ пытаСмся ΡΡ€Π°Π²Π½ΠΈΡ‚ΡŒ Π΅Π³ΠΎ со строковой ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, содСрТащСй UUID. ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ придСтся Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ нСявноС ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠΎΠ², Ρ‡Ρ‚ΠΎ часто ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ΠΏΠΎΠ»Π½ΠΎΠΌΡƒ ΡΠΊΠ°Π½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ вмСсто быстрого поиска ΠΏΠΎ индСксу. Π˜Π½Π΄Π΅ΠΊΡΠ°Ρ†ΠΈΡ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ эффСктивно Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° Ρ‚ΠΈΠΏΡ‹ сравниваСмых Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‚ ΠΈΠ»ΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ совмСстимыми Π±Π΅Π· слоТной ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚Π°Ρ†ΠΈΠΈ.

ОсобоС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ слСдуСт ΡƒΠ΄Π΅Π»ΡΡ‚ΡŒ Ρ‚ΠΈΠΏΠ°ΠΌ Π² составных полях. Если ΠΏΠΎΠ»Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ссылку Π½Π° Ρ€Π°Π·Π½Ρ‹Π΅ Π²ΠΈΠ΄Ρ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π”ΠΎΠ³ΠΎΠ²ΠΎΡ€ ΠΈΠ»ΠΈ ΠšΠΎΠ½Ρ‚Ρ€Π°Π³Π΅Π½Ρ‚), созданиС индСкса становится ΠΌΠ΅Π½Π΅Π΅ эффСктивным, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ структура хранСния Ρ‚Π°ΠΊΠΈΡ… ссылок ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Π°, Π½ΠΎ объСмна. ИспользованиС ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² (число, строка фиксированной Π΄Π»ΠΈΠ½Ρ‹) для слуТСбных ΠΏΠΎΠ»Π΅ΠΉ часто Π΄Π°Π΅Ρ‚ Π²Ρ‹ΠΈΠ³Ρ€Ρ‹Ρˆ Π² скорости Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ.

πŸ“Š Какой ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ Ρ‚ΠΈΠΏΠΈΠ·Π°Ρ†ΠΈΠΈ Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Ρ‡Π°Ρ‰Π΅?
Волько строгиС Ρ‚ΠΈΠΏΡ‹
ДинамичСская типизация
Π‘ΠΌΠ΅ΡˆΠ°Π½Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄
НС Π·Π°Π΄ΡƒΠΌΡ‹Π²Π°ΡŽΡΡŒ ΠΎΠ± этом

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ИзмСнСния Π² ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ°Ρ… ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ запросов ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ с Π²Ρ‹Ρ…ΠΎΠ΄ΠΎΠΌ Π½ΠΎΠ²Ρ‹Ρ… вСрсий ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹. ВсСгда провСряйтС ΠΏΠ»Π°Π½ выполнСния запроса Ρ‡Π΅Ρ€Π΅Π· консоль запросов для критичСски Π²Π°ΠΆΠ½Ρ‹Ρ… ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΎΠ².

Π Π°Π±ΠΎΡ‚Π° со справочниками ΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ

Π’ ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π½ΠΎΠΉ области 1Π‘ основными сущностями ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ…: справочники, Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹, рСгистры. Π’Ρ‹Π±ΠΎΡ€ ΠΌΠ΅ΠΆΠ΄Ρƒ БправочникБсылка ΠΈ Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊΠžΠ±ΡŠΠ΅ΠΊΡ‚ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈΠ°Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ для Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ прилоТСния. Бсылка β€” это лСгковСсный ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, содСрТащий Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ (UUID) ΠΈ основныС Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚Ρ‹, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ для отобраТСния Π² спискС. ΠžΠ±ΡŠΠ΅ΠΊΡ‚ ΠΆΠ΅ Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅Ρ‚ всС Π΄Π°Π½Π½Ρ‹Π΅ сущности ΠΈΠ· Π±Π°Π·Ρ‹, Ρ‡Ρ‚ΠΎ потрСбляСт Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ большС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти.

ΠŸΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°ΠΌΠΈ ΠΈΠ»ΠΈ Π² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°Ρ… запросов всСгда ΡΡ‚Π°Ρ€Π°ΠΉΡ‚Π΅ΡΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΈΠΏΡ‹ ссылок. ΠŸΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΎΠΏΡ€Π°Π²Π΄Π°Π½Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ этой сущности ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚Ρ‹, Π½Π΅ входящиС Π² основной состав ссылки. Частая ошибка Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² β€” ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ†ΠΈΠΊΠ»Π° Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ запроса, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ тысячам Π»ΠΈΡˆΠ½ΠΈΡ… ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΉ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ….

Для Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ситуация Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Π°, Π½ΠΎ добавляСтся аспСкт провСдСния. Π’ΠΈΠΏ Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠžΠ±ΡŠΠ΅ΠΊΡ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ для выполнСния ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠŸΡ€ΠΎΠ²Π΅ΡΡ‚ΠΈ() ΠΈΠ»ΠΈ ΠžΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒΠŸΡ€ΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅(). Однако ΠΏΡ€ΠΈ простом Ρ‡Ρ‚Π΅Π½ΠΈΠΈ истории Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠΉ ΠΈΠ»ΠΈ Π°Π½Π°Π»ΠΈΠ·Π΅ состояний достаточно Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с ДокумСнтБсылка. ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ Π²Ρ‹Π±ΠΎΡ€ Ρ‚ΠΈΠΏΠ° здСсь Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ влияСт Π½Π° ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ формирования Ρ€Π΅Π³Π»Π°ΠΌΠ΅Π½Ρ‚Π½Ρ‹Ρ… ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΎΠ².

β˜‘οΈ ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ

Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ: 0 / 4

Π‘Ρ‚Ρ€ΠΎΠΊΠΈ, числа ΠΈ Π΄Π°Ρ‚Ρ‹: Π½ΡŽΠ°Π½ΡΡ‹ хранСния

ΠŸΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… каТутся простыми, Π½ΠΎ ΠΈΠΌΠ΅ΡŽΡ‚ свои ΠΏΠΎΠ΄Π²ΠΎΠ΄Π½Ρ‹Π΅ ΠΊΠ°ΠΌΠ½ΠΈ. Π’ΠΈΠΏ Π‘Ρ‚Ρ€ΠΎΠΊΠ° Π² 1Π‘ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ фиксированной Π΄Π»ΠΈΠ½Ρ‹ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Ρ‡Ρ‚ΠΎ ΡƒΠ΄ΠΎΠ±Π½ΠΎ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°, Π½ΠΎ Π½Π΅ всСгда эффСктивно для Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…. ΠŸΡ€ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Ρ‚Π°Π±Π»ΠΈΡ† Π² SQL-Ρ€Π΅ΠΆΠΈΠΌΠ΅ Π΄Π»ΠΈΠ½Π½Ρ‹Π΅ строки ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹Π½ΠΎΡΠΈΡ‚ΡŒΡΡ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ страницы хранСния, замСдляя Ρ‡Ρ‚Π΅Π½ΠΈΠ΅. Если Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π΄Π»ΠΈΠ½ΠΎΠΉ Π½Π΅ Π±ΠΎΠ»Π΅Π΅ 10 символов, это стоит ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ Π°Π½Π°Π»ΠΈΠ·Π΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.

ЧисловыС Ρ‚ΠΈΠΏΡ‹ Π² 1Π‘ прСдставлСны дСсятичной Π΄Ρ€ΠΎΠ±ΡŒΡŽ с высокой Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒΡŽ. Π­Ρ‚ΠΎ идСально для финансовых расчСтов, Π³Π΄Π΅ Π²Π°ΠΆΠ½ΠΎ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ошибок округлСния, свойствСнных Π±ΠΈΠ½Π°Ρ€Π½ΠΎΠΉ Π°Ρ€ΠΈΡ„ΠΌΠ΅Ρ‚ΠΈΠΊΠ΅. Однако Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ чисСл с большим количСством Π·Π½Π°ΠΊΠΎΠ² послС запятой Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ большС мСста. Π’ΠΈΠΏ Число слСдуСт Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ с минимально Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠΉ Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒΡŽ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, 2 Π·Π½Π°ΠΊΠ° для Π²Π°Π»ΡŽΡ‚Ρ‹, 0 для Ρ†Π΅Π»Ρ‹Ρ… количСств), Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒ объСм Ρ…Ρ€Π°Π½ΠΈΠΌΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ.

Π Π°Π±ΠΎΡ‚Π° с Π΄Π°Ρ‚Π°ΠΌΠΈ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ понимания Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° Ρ…Ρ€Π°Π½ΠΈΡ‚ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΊΠΈ. Π’ΠΈΠΏ Π”Π°Ρ‚Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя ΠΈ Π΄Π°Ρ‚Ρƒ, ΠΈ врСмя. ΠŸΡ€ΠΈ ΠΎΡ‚Π±ΠΎΡ€Π΅ ΠΏΠΎ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄Π°ΠΌ часто Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ошибка сравнСния Π΄Π°Ρ‚Ρ‹ с Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ ΠΈ Π΄Π°Ρ‚Ρ‹ Π±Π΅Π· Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. ИспользованиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π½Π°Ρ‡Π°Π»Π° ΠΈ ΠΊΠΎΠ½Ρ†Π° ΠΏΠ΅Ρ€ΠΈΠΎΠ΄Π° (НачалоДня, ΠšΠΎΠ½Π΅Ρ†Π”Π½Ρ) ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ с ΠΏΠΎΠΏΠ°Π΄Π°Π½ΠΈΠ΅ΠΌ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Π½Π° Π³Ρ€Π°Π½ΠΈΡ†Ρƒ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»ΠΎΠ².

Π’Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π΅ прСдставлСниС Π΄Π°Ρ‚

Π”Π°Ρ‚Ρ‹ Π² 1Π‘ хранятся ΠΊΠ°ΠΊ количСство сСкунд, ΠΏΡ€ΠΎΡˆΠ΅Π΄ΡˆΠΈΡ… с Π½Π°Ρ‡Π°Π»Π° эры (0001-01-01). Π­Ρ‚ΠΎ позволяСт быстро Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ арифмСтичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π°Π΄ Π΄Π°Ρ‚Π°ΠΌΠΈ, вычитая ΠΎΠ΄Π½Ρƒ ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΎΠΉ для получСния ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π°.

Π‘Ρ€Π°Π²Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ Ρ‚Π°Π±Π»ΠΈΡ†Π° Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…

Для наглядности рассмотрим основныС характСристики часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² ΠΈ ΠΈΡ… влияниС Π½Π° систСму. Π­Ρ‚Π° Ρ‚Π°Π±Π»ΠΈΡ†Π° ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ быстро ΡΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π½ΠΎΠ²Ρ‹Ρ… Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚ΠΎΠ².

Π’ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… ОбъСм памяти Π‘ΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ доступа Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌΠΎΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅
БправочникБсылка Низкий (16 Π±Π°ΠΉΡ‚ + слуТСбныС) Высокая Π₯Ρ€Π°Π½Π΅Π½ΠΈΠ΅ связСй, ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ запросов
Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊΠžΠ±ΡŠΠ΅ΠΊΡ‚ Высокий (всС Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚Ρ‹) БрСдняя (Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ чтСния) Π Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ…, слоТныС вычислСния
Число (15,2) Π‘Ρ€Π΅Π΄Π½ΠΈΠΉ Высокая Π‘ΡƒΠΌΠΌΡ‹, количСства, Ρ†Π΅Π½Ρ‹
Π‘Ρ‚Ρ€ΠΎΠΊΠ° (Π½Π΅ΠΎΠ³Ρ€.) Зависит ΠΎΡ‚ Π΄Π»ΠΈΠ½Ρ‹ БрСдняя НаимСнования, ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ, ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ тСкст
Π‘ΡƒΠ»Π΅Π²ΠΎ ΠœΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠžΡ‡Π΅Π½ΡŒ высокая Π€Π»Π°Π³ΠΈ, ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠΈ состояния (ΠŸΡ€ΠΎΠ²Π΅Π΄Π΅Π½, ΠŸΠΎΠΌΠ΅Ρ‚ΠΊΠ°Π£Π΄Π°Π»Π΅Π½ΠΈΡ)

Как Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, использованиС ссылок вмСсто ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π΄Π°Π΅Ρ‚ сущСствСнный Π²Ρ‹ΠΈΠ³Ρ€Ρ‹Ρˆ Π² ΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΠΈ рСсурсов. Однако Π²Ρ‹Π±ΠΎΡ€ Π½Π΅ всСгда ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π΅Π½ ΠΈ зависит ΠΎΡ‚ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ бизнСс-Π·Π°Π΄Π°Ρ‡ΠΈ. Иногда удобство Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ ΠΏΠ΅Ρ€Π΅Π²Π΅ΡˆΠΈΠ²Π°Π΅Ρ‚ Π·Π°Ρ‚Ρ€Π°Ρ‚Ρ‹ памяти, особСнно Π² ΠΎΠ΄Π½ΠΎΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… сцСнариях ΠΈΠ»ΠΈ Ρ„ΠΎΠ½ΠΎΠ²Ρ‹Ρ… заданиях с Π½ΠΈΠ·ΠΊΠΈΠΌ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΎΠΌ.

Ошибки ΠΏΡ€ΠΈ Π²Ρ‹Π±ΠΎΡ€Π΅ Ρ‚ΠΈΠΏΠΎΠ² ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈΡ… устранСния

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

Другая частая ошибка β€” ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠΎΠ² "Π½Π° Π»Π΅Ρ‚Ρƒ" Π²Π½ΡƒΡ‚Ρ€ΠΈ запросов. Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ прСобразования, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Π•Π‘Π’Π¬NULL ΠΈΠ»ΠΈ явноС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΊ строкС Π² условии Π“Π”Π•, часто Π»ΠΎΠΌΠ°ΡŽΡ‚ использованиС индСксов. Если Π²Ρ‹ Π·Π°ΠΌΠ΅Ρ‚ΠΈΠ»ΠΈ, Ρ‡Ρ‚ΠΎ ΠΎΡ‚Ρ‡Π΅Ρ‚ формируСтся ΠΌΠΈΠ½ΡƒΡ‚Π°ΠΌΠΈ вмСсто сСкунд, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, Π½Π΅ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚Π΅ Π»ΠΈ Π²Ρ‹ Ρ‚ΠΈΠΏΡ‹ ΠΏΠΎΠ»Π΅ΠΉ нСпосрСдствСнно Π² тСкстС запроса.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π˜Π·Π±Π΅Π³Π°ΠΉΡ‚Π΅ хранСния Ρ€Π°Π·Π½ΠΎΡ€ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… Π² ΠΎΠ΄Π½ΠΎΠΌ строковом ΠΏΠΎΠ»Π΅ с ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ парсингом. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ рСгистры ΠΈΠ»ΠΈ Ρ‚Π°Π±Π»ΠΈΡ‡Π½Ρ‹Π΅ части для структурированной ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ.

πŸ’‘

Бтрогая типизация β€” это Π½Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ свободы Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°, Π° инструмСнт Π³Π°Ρ€Π°Π½Ρ‚ΠΈΠΈ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈ скорости Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ.

Π›ΡƒΡ‡ΡˆΠΈΠ΅ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ ΠΈ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ экспСртов

ΠžΠΏΡ‹Ρ‚Π½Ρ‹Π΅ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΠΎΡ€Ρ‹ 1Π‘ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽΡ‚ ΠΏΡ€ΠΈΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΏΡ€Π°Π²ΠΈΠ»Π°: "Π’ΠΈΠΏ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ строгим, насколько это позволяСт бизнСс-Π»ΠΎΠ³ΠΈΠΊΠ°". Если ΠΏΠΎΠ»Π΅ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ссылку Π½Π° элСмСнт справочника, Π½Π΅ добавляйтС этот Ρ‚ΠΈΠΏ Π² список допустимых. Чистота ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ… ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΡŽ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ.

ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с внСшними систСмами Ρ‡Π΅Ρ€Π΅Π· JSON ΠΈΠ»ΠΈ XML часто Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ соблазн ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹Π΅ строковыС поля для всСго. ВмСсто этого слСдуСт ΠΌΠ°ΠΏΠΈΡ‚ΡŒ входящиС Π΄Π°Π½Π½Ρ‹Π΅ Π½Π° строго Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ структуры 1Π‘ сразу Π½Π° этапС Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ. Π­Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΠΎΡ‚Π»ΠΎΠ²ΠΈΡ‚ΡŒ ошибки Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π΄Π°Π½Π½Ρ‹Ρ… Π΄ΠΎ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΠΏΠΎΠΏΠ°Π΄ΡƒΡ‚ Π² ΠΎΡΠ½ΠΎΠ²Π½ΡƒΡŽ Π±Π°Π·Ρƒ.

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

Π‘Π΅ΠΊΡ€Π΅Ρ‚ быстрой Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Ρ„ΠΎΡ€ΠΌ

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ запросов с Ρ‡Π΅Ρ‚ΠΊΠΈΠΌΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ. Π­Ρ‚ΠΎ позволяСт сСрвСру 1Π‘ ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ»Π°Π½Ρ‹ выполнСния запросов, Ρ‡Ρ‚ΠΎ ускоряСт ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½Ρ‹Π΅ открытия Ρ„ΠΎΡ€ΠΌ.

Часто Π·Π°Π΄Π°Π²Π°Π΅ΠΌΡ‹Π΅ вопросы (FAQ)

МоТно Π»ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… Ρƒ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚Π° Π±Π΅Π· ΠΏΠΎΡ‚Π΅Ρ€ΠΈ Π΄Π°Π½Π½Ρ‹Ρ…?

ИзмСнСниС Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½Ρ‹Ρ… Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π½ΠΎ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° попытаСтся ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Π΅. Если конвСртация Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π° (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΈΠ· Π‘Ρ‚Ρ€ΠΎΠΊΠΈ Π² Число, Π³Π΄Π΅ Π΅ΡΡ‚ΡŒ Π±ΡƒΠΊΠ²Ρ‹), Π΄Π°Π½Π½Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ±Π½ΡƒΠ»Π΅Π½Ρ‹ ΠΈΠ»ΠΈ ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ ΠΊΠ°ΠΊ ΠΎΡˆΠΈΠ±ΠΎΡ‡Π½Ρ‹Π΅. ВсСгда Π΄Π΅Π»Π°ΠΉΡ‚Π΅ Ρ€Π΅Π·Π΅Ρ€Π²Π½ΡƒΡŽ копию Π±Π°Π·Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄ Ρ‚Π°ΠΊΠΈΠΌΠΈ измСнСниями.

Π§Ρ‚ΠΎ Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для хранСния Π±ΠΎΠ»ΡŒΡˆΠΈΡ… тСкстов: Π‘Ρ‚Ρ€ΠΎΠΊΠ° ΠΈΠ»ΠΈ Π₯Ρ€Π°Π½Π΅Π½ΠΈΠ΅Π”Π°Π½Π½Ρ‹Ρ…?

Для тСкстов объСмом Π±ΠΎΠ»Π΅Π΅ 1000 символов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΡƒΡ‡Π°ΡΡ‚Π²ΡƒΡŽΡ‚ Π² ΠΎΡ‚Π±ΠΎΡ€Π°Ρ… ΠΈ сортировках, Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΈΠΏ Π₯Ρ€Π°Π½Π΅Π½ΠΈΠ΅Π”Π°Π½Π½Ρ‹Ρ…. Π­Ρ‚ΠΎ выносит большиС ΠΎΠ±ΡŠΠ΅ΠΌΡ‹ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΈΠ· основных Ρ‚Π°Π±Π»ΠΈΡ†, ускоряя Ρ€Π°Π±ΠΎΡ‚Ρƒ с основными Π΄Π°Π½Π½Ρ‹ΠΌΠΈ.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ запрос Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ, хотя индСксы построСны?

Частая ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π° β€” нСсоотвСтствиС Ρ‚ΠΈΠΏΠΎΠ² Π² условиях соСдинСния ΠΈΠ»ΠΈ ΠΎΡ‚Π±ΠΎΡ€Π°. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎ Ρ‚ΠΈΠΏΡ‹ сравниваСмых ΠΏΠΎΠ»Π΅ΠΉ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‚. Π’Π°ΠΊΠΆΠ΅ ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½Π°Π΄ полями Π² Π»Π΅Π²ΠΎΠΉ части условия сравнСния.

Как ΡƒΠ·Π½Π°Ρ‚ΡŒ Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹ΠΉ Ρ‚ΠΈΠΏ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π²ΠΎ врСмя ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ?

Π’ Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ Π½Π°Π²Π΅Π΄ΠΈΡ‚Π΅ курсор Π½Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΎΠΊΠ½ΠΎ "ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Ρ‹Π΅ Ρ‚ΠΎΡ‡ΠΊΠΈ". ΠœΠ΅Ρ‚ΠΎΠ΄ Π’ΠΈΠΏΠ—Π½Ρ‡() Π² ΠΊΠΎΠ΄Π΅ Ρ‚Π°ΠΊΠΆΠ΅ позволяСт ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ‚ΠΈΠΏ значСния Π² любой ΠΌΠΎΠΌΠ΅Π½Ρ‚ выполнСния.