--- aliases: tags: - maturity/🌱 date: - - 2024-06-16 zero-link: - "[[../garden/ru/meta/zero/00 MySQL|00 MySQL]]" parents: linked: --- Π’ MysSQL Π΅ΡΡ‚ΡŒ логичСский слой, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ занимаСтся ΠΎΠ±Ρ‰ΠΈΠΌΠΈ ΠΈ ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ ΠΎΡ‚ хранСния Π΄Π°Π½Π½Ρ‹Ρ… опСрациями: ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, построСниС ΠΏΠ»Π°Π½Π° запроса ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅. А Π΅ΡΡ‚ΡŒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ физичСский слой, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ…. Он ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ интСрфСйс ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ. ^42f122 Из-Π·Π° этого Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹: - [[РСпликация Π² MySQL]]. Π’Ρ‹Π½ΡƒΠΆΠ΄Π΅Π½Ρ‹ ΠΏΠΈΡΠ°Ρ‚ΡŒ нСсколько ΠΆΡƒΡ€Π½Π°Π»ΠΎΠ², Π½Π° логичСском ΠΈ физичСском ΡƒΡ€ΠΎΠ²Π½Π΅ - Π˜Π½Π΄Π΅ΠΊΡΡ‹. РСализация ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ индСкса ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ Π² Ρ€Π°Π·Π½Ρ‹Ρ… Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°Ρ… - ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ‚ΠΎΡ€ слабо связан с Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ΠΌ, ΠΈΠ·-Π·Π° этого ΠΎΠ½ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ особСнности Π΄Π²ΠΈΠΆΠΊΠ° для ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. ![](../../../meta/files/images/Pasted%20image%2020240613195204.png) ΠšΠ»ΠΈΠ΅Π½Ρ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±Ρ€Π°Ρ‰Π°ΡŽΡ‚ΡΡ ΠΊ сСрвСру Ρ‡Π΅Ρ€Π΅Π· Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΊΠΎΠ½Π½Π΅ΠΊΡ‚ΠΎΡ€Π° ΠΈΠ»ΠΈ C API ΠΏΠΎ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρƒ TCP/IP Π»ΠΈΠ±ΠΎ UNIX Socket. ЛогичСский слой, ΠΎΠ±Ρ‰ΠΈΠΉ для всСх Π΄Π²ΠΈΠΆΠΊΠΎΠ²: - Π’ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ происходит авторизация. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² своСм нСзависимом ΠΏΠΎΡ‚ΠΎΠΊΠ΅. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΏΠΎΡ‚ΠΎΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ сСрвСром. - Кэш запросов. ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ ΠΎΠ΄Π½ΠΈΠΌ ΠΎΠ±Ρ‰ΠΈΠΌ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠΌ для всСх ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ². ΠœΠΎΠΆΠ΅Ρ‚ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ ΡƒΠ·ΠΊΠΈΠΌ мСстом. - ΠŸΠ°Ρ€ΡΠ΅Ρ€ провСряСт синтаксис запроса, Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ Ρƒ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… Ρ‚Π°Π±Π»ΠΈΡ† ΠΈ ΠΏΠΎΠ»Π΅ΠΉ, ΠΏΡ€Π°Π²Π° доступа нСпосрСдствСнно ΠΊ этим полям ΠΈ провСряСт Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚Π²Π΅Ρ‚Π° Π² кэшС запросов, послС Ρ‡Π΅Π³ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅Ρ‚ распарсСнный запрос ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ‚ΠΎΡ€Ρƒ; - ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ‚ΠΎΡ€ Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ Π² интСрфСйсС Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰ статистику ΠΏΠΎ индСксам, Π½Π° основании ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΎΠ½ строит ΠΏΠ»Π°Π½ запроса, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŽ; - Π˜ΡΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒ. ΠžΠ±Ρ€Π°Ρ‰Π°Π΅Ρ‚ΡΡ Π·Π° Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π² Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ согласно ΠΏΠ»Π°Π½Ρƒ запроса. ΠžΠ±Π½ΠΎΠ²Π»ΡΠ΅Ρ‚ значСния Π² кэшС запросов. ## ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ‚ΠΎΡ€ Π’Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ самый ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠ»Π°Π½. План запроса, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ‚ΠΎΡ€, это Π½Π΅ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ исполняСмый ΠΊΠΎΠ΄, Π° Π½Π°Π±ΠΎΡ€ инструкций, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ пСрСдаСтся ΠΈΡΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŽ. Π­Ρ‚ΠΎ Π½Π΅ΠΊΠΎΠ΅ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ запрос Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ PostrgreSQL, ΠΌΡ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°ΠΊ фактичСски Π±Ρ‹Π» Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ запрос. Π”Π°Π½Π½Ρ‹Π΅ ΠΎΡ‚ 2015 Π³ΠΎΠ΄Π°, ΠΌΠΎΠΆΠ΅Ρ‚ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ измСнилось. ^432879 КакиС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹: - Из-Π·Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ MySQL - ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΌΠ°Π»ΠΎ статистики ΠΏΠΎ запросам. - Π½Π΅ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Π΅Ρ‚ особСнности Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰, Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ, Π±ΡƒΡ„Ρ„Π΅Ρ€Ρ‹ соСдинСний ΠΈ кэши Как Π²Π»ΠΈΡΡ‚ΡŒ Π½Π° ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ‚ΠΎΡ€? - ΠŸΠ΅Ρ€Π΅ΠΏΠΈΡΠ°Ρ‚ΡŒ запрос. - Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ [[../../../../../_inbox/ИндСкс Π² MySQL|индСксы]] - user/force/ignore index. МоТСм явно ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΊΠΎΠ³Π΄Π° ΠΈ ΠΊΠ°ΠΊΠΈΠ΅ индСксы ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ - straight_join. МоТСм Π·Π°Π΄Π°Ρ‚ΡŒ ТСсткий порядок join Ρ‚Π°Π±Π»ΠΈΡ† - @@optimizer_switch. ΠŸΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ/ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ‚ΠΎΡ€. - optimizer_prune_level ΠΈ optimizer_search_depth. ВСрхняя Π³Ρ€Π°Π½ΠΈΡ†Π° количСства Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ выполнСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ рассмотрит ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ‚ΠΎΡ€. ## Π—Π°ΠΌΠ΅Ρ‚ΠΊΠΈ - mariadb - Ρ„ΠΎΡ€ΠΊ Mysql, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ пытаСтся ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π½Ρ‹Π΅ ошибки MySQL