API ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ² Π² Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ MySQL Native Driver

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

Π”Ρ€Π°ΠΉΠ²Π΅Ρ€ MySQL Native Driver, ΠΈΠ»ΠΈ mysqlnd, прСдоставляСт API, Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠ»Π°Π³ΠΈΠ½Ρ‹ Π²ΡΡ‚Ρ€Π°ΠΈΠ²Π°ΡŽΡ‚ΡΡ Π² Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€. ΠŸΠ»Π°Π³ΠΈΠ½Ρ‹ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π° mysqlnd Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΌΠ΅ΠΆΠ΄Ρƒ PHP-прилоТСниями ΠΈ MySQL-сСрвСром, Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ MySQL Proxy, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΌΠ΅ΠΆΠ΄Ρƒ клиСнтскими прилоТСниями ΠΈ сСрвСром MySQL. ΠŸΠ»Π°Π³ΠΈΠ½Ρ‹ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π° mysqlnd Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ Ρ‚ΠΈΠΏΠΎΠ²Ρ‹Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ MySQL Proxy Π½Π°ΠΏΠΎΠ΄ΠΎΠ±ΠΈΠ΅ балансировки Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ, ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ быстродСйствия. Из-Π·Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ ΠΈ мСста ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ запросов ΠΏΠ»Π°Π³ΠΈΠ½Ρ‹ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π° mysqlnd Π½Π΅ содСрТат Π½Π΅Π΄ΠΎΡ‡Ρ‘Ρ‚ΠΎΠ² MySQL Proxy Π½Π°ΠΏΠΎΠ΄ΠΎΠ±ΠΈΠ΅ Π΅Π΄ΠΈΠ½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ ΠΎΡ‚ΠΊΠ°Π·Π°, Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ установки ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ прокси-сСрвСра ΠΈ изучСния Π½ΠΎΠ²ΠΎΠ³ΠΎ языка программирования Lua.

Плагин mysqlnd Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π° mysqlnd. Плагин ΡƒΠΌΠ΅Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Π²Ρ‹Π·ΠΎΠ²Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π° mysqlnd ΠΈΠ· MySQL-ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ PHP Π½Π°ΠΏΠΎΠ΄ΠΎΠ±ΠΈΠ΅ ext/mysql, ext/mysqli ΠΈ PDO_MYSQL. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΏΠ»Π°Π³ΠΈΠ½Π°ΠΌ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π° mysqlnd доступСн ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ запроса, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ»ΠΈ ΠΈΠ· клиСнтского прилоТСния.

ΠŸΠ»Π°Π³ΠΈΠ½Ρ‹ ΡƒΠΌΠ΅ΡŽΡ‚ ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ΠΌΠ΅Π½ΡΡ‚ΡŒ Π²Ρ‹Π·ΠΎΠ²Ρ‹ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π° mysqlnd. API Π½Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ Ρ‚Π°Π±Π»ΠΈΡ† Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π° mysqlnd ΠΈ Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Π²Ρ‹Π·ΠΎΠ²Ρ‹ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π° mysqlnd ΠΈΠ· mysqlnd-ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ mysqlnd-ΠΏΠ»Π°Π³ΠΈΠ½Π°. Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ΠΉ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π° mysqlnd Π΄Π°Ρ‘Ρ‚ ΠΏΠ»Π°Π³ΠΈΠ½Π°ΠΌ максимум гибкости.

ΠŸΠ»Π°Π³ΠΈΠ½Ρ‹ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π° mysqlnd β€” фактичСски PHP-ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Π½Π° языкС C, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Ρ‡Π΅Ρ€Π΅Π· API ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ mysqlnd-ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ² Π² PHP-Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ MySQL Native Driver, ΠΈΠ»ΠΈ mysqlnd. ΠŸΠ»Π°Π³ΠΈΠ½Ρ‹ Π½Π° 100 % ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½Ρ‹ для PHP-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ трСбуСтся ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΏΠ»Π°Π³ΠΈΠ½Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅. Π‘ Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния повСдСния, mysqlnd-ΠΏΠ»Π°Π³ΠΈΠ½ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π° ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ Π½ΠΈΠΆΠ΅ mysqlnd-Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π°, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ пСрСопрСдСляСт ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π°.

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ список ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ практичСских Π·Π°Π΄Π°Ρ‡, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π΅ΡˆΠ°ΡŽΡ‚ посрСдством ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ² Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π° mysqlnd.

  • Балансировка Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ
    • Π Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ чтСния ΠΈ записи. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ β€” ΠΌΠΎΠ΄ΡƒΠ»ΡŒ PECL/mysqlnd_ms (Master Slave). ΠœΠΎΠ΄ΡƒΠ»ΡŒ раздСляСт запросы Π½Π° Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ ΠΈ запись для настройки Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ.
    • ΠžΡ‚ΠΊΠ°Π·ΠΎΡƒΡΡ‚ΠΎΠΉΡ‡ΠΈΠ²ΠΎΡΡ‚ΡŒ
    • ЦикличСскоС распрСдСлСниС запросов ΠΏΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡƒ Round-Robin для Ρ€Π°Π²Π½ΠΎΠΌΠ΅Ρ€Π½ΠΎΠΉ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ, распрСдСлСниС Π½Π° Π½Π°ΠΈΠΌΠ΅Π½Π΅Π΅ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹ΠΉ сСрвСр
  • ΠœΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³
    • Π›ΠΎΠ³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ запросов
    • Анализ запросов
    • Аудит запросов. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ β€” ΠΌΠΎΠ΄ΡƒΠ»ΡŒ PECL/mysqlnd_sip (SQL Injection Protection, Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ SQL-ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΠΉ). ΠœΠΎΠ΄ΡƒΠ»ΡŒ инспСктируСт запросы ΠΈ выполняСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ Π½Π°Π±ΠΎΡ€Ρƒ ΠΏΡ€Π°Π²ΠΈΠ».
  • ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ.
    • ΠšΠ΅ΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ β€” ΠΌΠΎΠ΄ΡƒΠ»ΡŒ PECL/mysqlnd_qc (Query Cache, ΠΊΠ΅ΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ запросов).
    • ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ числа запросов
    • Π¨Π°Ρ€Π΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ β€” ΠΌΠΎΠ΄ΡƒΠ»ΡŒ PECL/mysqlnd_mc (Multi Connect). ΠœΠΎΠ΄ΡƒΠ»ΡŒ пытаСтся Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ запрос SELECT Π½Π° n частСй Ρ‡Π΅Ρ€Π΅Π· SELECT ... LIMIT part_1, SELECT LIMIT part_n. ΠœΠΎΠ΄ΡƒΠ»ΡŒ отправляСт запросы Π½Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ MySQL-сСрвСры ΠΈ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅.

ДоступныС ΠΏΠ»Π°Π³ΠΈΠ½Ρ‹ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π° MySQL Native Driver

Π Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ PECL ΡƒΠΆΠ΅ содСрТит ряд mysqlnd-ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ², Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅:

  • mysqlnd_mc β€” Multi Connect, Ρ€Π°Π·Π±ΠΈΠ²ΠΊΠ° запросов ΠΏΠΎ ΡˆΠ°Ρ€Π΄Π°ΠΌ.
  • mysqlnd_ms β€” Master Slave, Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ запросов Π½Π° Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ ΠΈ запросов Π½Π° запись.
  • mysqlnd_qc β€” Query Cache, ΠΊΠ΅ΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² запросов.
  • mysqlnd_pscache β€” Prepared Statement Handle Cache, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΊΠ΅ΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Π½Ρ‹Ρ… запросов.
  • mysqlnd_sip β€” SQL Injection Protection, Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ SQL-ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΠΉ.
  • mysqlnd_uh β€” User Handler, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ.
οΌ‹Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΡ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ Π΅Ρ‰Ρ‘ Π½Π΅ добавляли примСчания для страницы