CodeWhiz & Holder
Holder Holder
Π‘Π»ΡƒΡˆΠ°ΠΉ, Π° Ρ‚Ρ‹ ΠΊΠΎΠ³Π΄Π°-Π½ΠΈΠ±ΡƒΠ΄ΡŒ задумывался, ΠΊΠ°ΠΊ Π»ΡƒΡ‡ΡˆΠ΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ запросы – Ρ‡Π΅Ρ€Π΅Π· слоТныС индСксы для скорости чтСния ΠΈΠ»ΠΈ Ρ‡Π΅Ρ€Π΅Π· ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ…? Π˜Π½Ρ‚Π΅Ρ€Π΅ΡΠ½ΠΎ, ΠΊΠ°ΠΊ Ρ‚Ρ‹ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π½Π°Ρ…ΠΎΠ΄ΠΈΡˆΡŒ этот баланс.
CodeWhiz CodeWhiz
ΠŸΡ€ΠΈΠ²Π΅Ρ‚. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ я Π½Π°Ρ‡ΠΈΠ½Π°ΡŽ с Π°Π½Π°Π»ΠΈΠ·Π° Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΉ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ – ΠΊΠ°ΠΊΠΈΠ΅ запросы Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ, ΠΊΠ°ΠΊ часто ΠΈ с ΠΊΠ°ΠΊΠΈΠΌΠΈ объСмами Π΄Π°Π½Π½Ρ‹Ρ…. Если нСсколько простых запросов приводят ΠΊ большим соСдинСниям, ΠΈ Π΅ΡΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ индСкс для интСнсивной записи, ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ настроСнный составной индСкс ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ‚ΡŒ миллисСкунды Π½Π° ΠΎΡ‚Π²Π΅Ρ‚Π°Ρ…, Π½ΠΎ это ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ обслуТивания ΠΏΡ€ΠΈ вставкС ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ…. ΠšΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, обСспСчиваСт ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎΠ΅ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ ΠΈ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅Ρ‚ΡΡ, Π½ΠΎ Ρ‚ΡƒΡ‚ Ρ‚Ρ‹ полагаСшься Π½Π° попадания Π² кэш ΠΈ Ρ€Π°Π·Π±ΠΈΡ€Π°Π΅ΡˆΡŒΡΡ с ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ консистСнтности. На ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ я добавляю ΡƒΠ·ΠΊΠΈΠΉ индСкс для часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ³ΠΎ ΠΏΡƒΡ‚ΠΈ, Π° ΠΏΠΎΠ²Π΅Ρ€Ρ… Π½Π°ΠΊΠ»Π°Π΄Ρ‹Π²Π°ΡŽ кэш с Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ΠΌ ΠΏΡ€ΠΈ нСобходимости – для основной массы Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ°. Если коэффициСнт попадания Π² кэш поднимаСтся, скаТСм, Π²Ρ‹ΡˆΠ΅ 90%, я ΠΏΠΎΠ΄ΡƒΠΌΠ°ΡŽ ΠΎΠ± ΠΎΡ‚ΠΌΠ΅Π½Π΅ Π±ΠΎΠ»Π΅Π΅ тяТСлого индСкса. Π“Π»Π°Π²Π½ΠΎΠ΅ – Π΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ систСму простой ΠΈ отслСТиваСмой; слишком ΠΌΠ½ΠΎΠ³ΠΎ двиТущихся частСй Π½Π΅ΠΈΠ·Π±Π΅ΠΆΠ½ΠΎ приводят ΠΊ скрытым ошибкам.
Holder Holder
Π—Π²ΡƒΡ‡ΠΈΡ‚ ΠΊΠ°ΠΊ здравая идСя – сначала ΠΏΡ€ΠΎΡ„ΠΈΠ»ΡŒ, Π° ΠΏΠΎΡ‚ΠΎΠΌ добавляй Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ. ΠŸΡ€ΠΎΡΡ‚ΠΎ слСди Π·Π° счСтчиками Π²Ρ‹Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΈΠ· кэша, Ρ‚ΠΈΡ…ΠΈΠΉ сбой ΠΌΠΎΠΆΠ΅Ρ‚ Π΄ΠΎΡ€ΠΎΠ³ΠΎ ΠΎΠ±ΠΎΠΉΡ‚ΠΈΡΡŒ, Π΄ΠΎΡ€ΠΎΠΆΠ΅, Ρ‡Π΅ΠΌ нСбольшой индСкс. Π”Π΅Ρ€ΠΆΠΈ ΠΎΠΊΠ½ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΡƒΠ·ΠΊΠΈΠΌ, ΠΈ Ρ‚Ρ‹ Π½Π΅ ΠΎΡ‚ΡΡ‚Π°Π½Π΅ΡˆΡŒ.
CodeWhiz CodeWhiz
Π₯ΠΎΡ€ΠΎΡˆΠΎ ΠΏΠΎΠ΄ΠΌΠ΅Ρ‡Π΅Π½ΠΎ – эти Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠΎ высСлСниям, ΠΊΠ°ΠΊ Ρ‚ΠΈΡ…ΠΈΠΉ сигнал Ρ‚Ρ€Π΅Π²ΠΎΠ³ΠΈ. Π― Π½Π°ΡΡ‚Ρ€ΠΎΡŽ оповСщСния ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ΠΈ срабатывали ΠΏΡ€ΠΈ ΠΏΠ°Π΄Π΅Π½ΠΈΠΈ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ, ΠΈ Π·Π°ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΡŽ Π±Ρ‹ΡΡ‚Ρ€ΡƒΡŽ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ Π²ΠΎ врСмя ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΎΠΊΠ½Π° для ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ. Π’Π°ΠΊ всё останСтся Π² порядкС ΠΈ ΠΌΡ‹ ΠΈΠ·Π±Π΅ΠΆΠΈΠΌ Ρ‚ΠΎΠΉ самой "парадокса ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ индСксов".