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

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«MySQL: руководство профСссионала». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 3

Автор АлСксСй ΠŸΠ°ΡƒΡ‚ΠΎΠ²

mysql> SELECT VERSION();

+------------+

| VERSION() |

+------------+

| 4.1.18-log |

+------------+

1 row in set (0.01 sec)


mysql> CREATE TABLE t SELECT 2.5 AS a, 25E-1 AS b;

Query OK, 1 row affected (0.07 sec)

Records: 1 Duplicates: 0 Warnings: 0


mysql> DESCRIBE t;

+-------+-------------+------+-----+---------+-------+

| Field | Type | Null | Key | Default | Extra |

+-------+-------------+------+-----+---------+-------+

| a | double(3,1) | | | 0.0 | |

| b | double | | | 0 | |

+-------+-------------+------+-----+---------+-------+

2 rows in set (0.04 sec)


Начиная с MySQL 5.0.3, Π»ΠΈΡ‚Π΅Ρ€Π°Π» с ΠΏΡ€ΠΈΠ±Π»ΠΈΠ·ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ всС Π΅Ρ‰Π΅ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ Π² Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой, Π½ΠΎ Π»ΠΈΡ‚Π΅Ρ€Π°Π» с Ρ‚ΠΎΡ‡Π½Ρ‹ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½ ΠΊΠ°ΠΊ DECIMAL:


mysql> SELECT VERSION();

+-----------------+

| VERSION() |

+-----------------+

| 5.1.6-alpha-log |

+-----------------+

1 row in set (0.11 sec)


mysql> CREATE TABLE t SELECT 2.5 AS a, 25E-1 AS b;

Query OK, 1 row affected (0.01 sec)

Records: 1 Duplicates: 0 Warnings: 0


mysql> DESCRIBE t;

+-------+-----------------------+------+-----+---------+-------+

| Field | Type | Null | Key | Default | Extra |

+-------+-----------------------+------+-----+---------+-------+

| a | decimal(2,1) unsigned | NO | | 0.0 | |

| b | double | NO | | 0 | |

+-------+-----------------------+------+-----+---------+-------+

2 rows in set (0.01 sec)


ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 7. Если ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Ρ‚ΠΎΡ‡Π½Ρ‹ΠΉ числовой Ρ‚ΠΈΠΏ, Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Ρ‚Π°ΠΊΠΆΠ΅ Ρ‚ΠΎΡ‡Π½Ρ‹ΠΉ числовой Ρ‚ΠΈΠΏ, с ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΎΠΌ ΠΏΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅, ΠΊΠ°ΠΊ Ρƒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. РассмотритС эти инструкции:


mysql> CREATE TABLE t (i INT, d DECIMAL, f FLOAT);

mysql> INSERT INTO t VALUES(1,1,1);

mysql> CREATE TABLE y SELECT AVG(i), AVG(d), AVG(f) FROM t;


Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Π΄ΠΎ MySQL 5.0.3:


mysql> DESCRIBE y;

+--------+--------------+------+-----+---------+-------+

| Field | Type | Null | Key | Default | Extra |

+--------+--------------+------+-----+---------+-------+

| AVG(i) | double(17,4) | YES | | NULL | |

| AVG(d) | double(17,4) | YES | | NULL | |

| AVG(f) | double | YES | | NULL | |

+--------+--------------+------+-----+---------+-------+


Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ точности, нСзависимо ΠΎΡ‚ Ρ‚ΠΈΠΏΠ° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. А Π²ΠΎΡ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Π² MySQL 5.0.3 ΠΈ Π²Ρ‹ΡˆΠ΅:

mysql> DESCRIBE y;

+--------+---------------+------+-----+---------+-------+

| Field | Type | Null | Key | Default | Extra |

+--------+---------------+------+-----+---------+-------+

| AVG(i) | decimal(14,4) | YES | | NULL | |

| AVG(d) | decimal(14,4) | YES | | NULL | |

| AVG(f) | double | YES | | NULL | |

+--------+---------------+------+-----+---------+-------+


Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ точности Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой. Для ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Ρ‚ΠΎΡ‡Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ², Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚Π°ΠΊΠΆΠ΅ Ρ‚ΠΎΡ‡Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ.

Π“Π»Π°Π²Π° 2. Π’ΠΈΠΏΡ‹ памяти ΠΈ Ρ‚Π°Π±Π»ΠΈΡ†

MySQL ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ нСсколько Ρ‚ΠΈΠΏΠΎΠ² памяти, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ ΠΊΠ°ΠΊ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Ρ‹ для Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹.

Π‘ MySQL 5.1 MySQL AB прСдставил Π½ΠΎΠ²ΡƒΡŽ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡƒΡŽ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ памяти, которая позволяСт Ρ‚ΠΈΠΏΠ°ΠΌ памяти Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒΡΡ ΠΈ Π²Ρ‹Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒΡΡ ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ надобности. Если Ρ€Π°Π½ΡŒΡˆΠ΅ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΠ»ΠΎΡΡŒ ΠΏΠ΅Ρ€Π΅ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ сСрвСр, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ Ρ‚ΠΈΠΏΠ° Ρ‚Π°Π±Π»ΠΈΡ†, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ это Π½Π΅ трСбуСтся.

Π­Ρ‚Π° Π³Π»Π°Π²Π° описываСт ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· Ρ‚ΠΈΠΏΠΎΠ² памяти MySQL, ΠΊΡ€ΠΎΠΌΠ΅ NDB Cluster. Π­Ρ‚ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ содСрТит описаниС Π½ΠΎΠ²ΠΎΠΉ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ хранСния.

2.1. ΠšΡ€Π°Ρ‚ΠΊΠΈΠΉ ΠΎΠ±Π·ΠΎΡ€ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ хранСния Π΄Π°Π½Π½Ρ‹Ρ… Π² MySQL

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

Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ обСспСчиваСт стандартный Π½Π°Π±ΠΎΡ€ управлСния ΠΈ услуг ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ±Ρ‰ΠΈΠΌΠΈ срСди всСх основных Ρ‚ΠΈΠΏΠΎΠ² памяти. Π­Ρ‚Π° эффСктивная ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½Π°Ρ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° обСспСчиваСт ΠΎΠ³Ρ€ΠΎΠΌΠ½Ρ‹Π΅ Π²Ρ‹Π³ΠΎΠ΄Ρ‹ для всСх.

ΠŸΡ€ΠΈΠΊΠ»Π°Π΄Π½ΠΎΠΉ программист ΠΈ DBA взаимодСйствуСт с Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ… MySQL Ρ‡Π΅Ρ€Π΅Π· Connector API ΠΈ сСрвисныС ΡƒΡ€ΠΎΠ²Π½ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ стоят Π²Ρ‹ΡˆΠ΅ Ρ‚ΠΈΠΏΠΎΠ² памяти. Если измСнСния ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ ΡΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ‚ΠΈΠΏ памяти, Ρ‚ΠΎ Π½Π΅ придСтся особо Π½Π°ΠΏΡ€ΡΠ³Π°Ρ‚ΡŒΡΡ.

2.1.1. ΠžΠ±Ρ‰ΠΈΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ сСрвСра Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…

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

Π§Π΅ΠΌ Π²ΠΎΠΎΠ±Ρ‰Π΅ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ Ρ‚ΠΈΠΏΡ‹ памяти? ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ отличия Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚:


Concurrency: Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈΠΌΠ΅ΡŽΡ‚ Π±ΠΎΠ»Π΅Π΅ Π³Ρ€Π°Π½ΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ трСбования Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ (Ρ‚ΠΈΠΏΠ° Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ уровня строки) Ρ‡Π΅ΠΌ Π΄Ρ€ΡƒΠ³ΠΈΠ΅. Π’Ρ‹Π±ΠΎΡ€ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΉ Π±Π»ΠΎΠΊΠΈΡ€ΡƒΡŽΡ‰Π΅ΠΉ стратСгии ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Ρ‚ΡŒ Π½Π΅ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π·Π°Ρ‚Ρ€Π°Ρ‚Ρ‹ ΠΈ, ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, ΡƒΠ»ΡƒΡ‡ΡˆΠ°Ρ‚ΡŒ ΠΏΠΎΠ»Π½ΡƒΡŽ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ. Π­Ρ‚Π° ΠΎΠ±Π»Π°ΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΆΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ возмоТностСй Ρ‚ΠΈΠΏΠ° многовСрсионного управлСния ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΠΈΠ·ΠΌΠ° ΠΈΠ»ΠΈ прСдоставлСния ΠΊΠ°Π΄Ρ€Π° чтСния.


Transaction Support: Π½Π΅ каТдая прикладная ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° нуТдаСтся Π² транзакциях, Π½ΠΎ для Ρ‚Π΅Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ это Π½Π°Π΄ΠΎ, ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ ΠΎΡ‡Π΅Π½ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ трСбования Ρ‚ΠΈΠΏΠ° совмСстимости с ACID.


Referential Integrity: ΠΈΠ½ΠΎΠ³Π΄Π° Π½Π°Π΄ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ сСрвСр Π² рСляционной Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π» ΡΠΏΡ€Π°Π²ΠΎΡ‡Π½ΡƒΡŽ Ρ†Π΅Π»ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· DDL-ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ внСшниС ΠΊΠ»ΡŽΡ‡ΠΈ.


Physical Storage: это Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ всС ΠΎΡ‚ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° страницы для Ρ‚Π°Π±Π»ΠΈΡ† ΠΈ индСксов Π΄ΠΎ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ³ΠΎ для сохранСния Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° физичСский диск.


Index Support: Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈΠΌΠ΅ΡŽΡ‚ Ρ‚Π΅Π½Π΄Π΅Π½Ρ†ΠΈΡŽ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·Ρƒ ΠΈΠ· Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… индСксных cΡ‚Ρ€Π°Ρ‚Π΅Π³ΠΈΠΉ. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ‚ΠΈΠΏ памяти Π²ΠΎΠΎΠ±Ρ‰Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ собствСнныС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ индСксации, хотя Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ (Ρ‚ΠΈΠΏΠ° индСксов B-tree) ΠΎΠ±Ρ‰ΠΈΠ΅ Π½Π° ΠΏΠΎΡ‡Ρ‚ΠΈ всСх Ρ‚ΠΈΠΏΠ°Ρ….


Memory Caches: Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π»ΡƒΡ‡ΡˆΠ΅ ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‚ ΠΎΠ΄Π½ΠΈΠΌ ΠΊΡΡˆΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΌ cтратСгиям, Ρ‡Π΅ΠΌ Π΄Ρ€ΡƒΠ³ΠΈΠΌ, хотя Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ кэши памяти ΠΎΠ±Ρ‰ΠΈΠ΅ Π½Π° всСх Ρ‚ΠΈΠΏΠ°Ρ… хранСния.


Performance Aids: это Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½Ρ‹Π΅ ΠΏΠΎΡ‚ΠΎΠΊΠΈ Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π° для ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΠΈΠ·ΠΌΠ° ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ², ввСдСния ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Ρ‹Ρ… Ρ‚ΠΎΡ‡Π΅ΠΊ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…, объСмной ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ вставки ΠΈ Ρ‚ΠΎΠΌΡƒ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ.


Miscellaneous Target Features: это ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ для гСографичСских ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, ограничСния Π·Π°Ρ‰ΠΈΡ‚Ρ‹ для Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ манипулирования Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… свойств.

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ ΡΡŠΠ΅ΠΌΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² инфраструктуры памяти Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΡ‚ΡŒ Π²Ρ‹Π±ΠΎΡ€ΠΎΡ‡Π½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ Π²Ρ‹Π³ΠΎΠ΄ для спСцифичСской ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Наоборот, ΡƒΡ…ΠΎΠ΄ ΠΎΡ‚ Π½Π°Π±ΠΎΡ€Π° Π»ΠΈΡˆΠ½ΠΈΡ… свойств ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ Π½Π΅Π½ΡƒΠΆΠ½Ρ‹Π΅ Π½Π΅ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π·Π°Ρ‚Ρ€Π°Ρ‚Ρ‹. Надо ΡƒΡΠ²ΠΎΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π°Π±ΠΎΡ€Π° Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ спСцифичСской ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ Π²Ρ‹Π±ΠΎΡ€ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ Ρ‚ΠΈΠΏΠ° памяти MySQL ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ драматичСскоС воздСйствиС Π½Π° ΠΏΠΎΠ»Π½ΡƒΡŽ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ систСмы.

2.1.2. БъСмная Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° памяти

Π’ MySQL 5.1 MySQL AB прСдставила Π½ΠΎΠ²ΡƒΡŽ ΡΡŠΠ΅ΠΌΠ½ΡƒΡŽ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ памяти, которая позволяСт Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ ΠΈ Π²Ρ‹Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ Ρ‚ΠΈΠΏΡ‹ памяти (Ρ€Π°Π½Π΅Π΅ извСстныС ΠΊΠ°ΠΊ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Ρ‹ Ρ‚Π°Π±Π»ΠΈΡ†) ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ надобности, Π½Π΅ пСрСзапуская сСрвСр.

2.1.2.1. ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ° памяти

ΠŸΡ€Π΅ΠΆΠ΄Π΅, Ρ‡Π΅ΠΌ Ρ‚ΠΈΠΏ памяти смоТСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ, смСнная общСдоступная Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π° Π² MySQL ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ INSTALL PLUGIN. НапримСр, Ссли смСнный Ρ‚ΠΈΠΏ памяти EXAMPLE называСтся ha_example, Π° общСдоступная Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π° ha_example.so, Ρ‚ΠΎ Π’Ρ‹ Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅Ρ‚Π΅ это ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ инструкциСй:INSTALL PLUGIN ha_example SONAME 'ha_example.so';


ΠžΠ±Ρ‰Π΅Π΄ΠΎΡΡ‚ΡƒΠΏΠ½Π°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½Π° Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ для смСнных ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ сСрвСра MySQL, располоТСниС ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π·Π°Π΄Π°Π½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ систСмы plugin_dir.

2.1.2.2. ΠžΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ° памяти

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ‚ΠΈΠΏ памяти, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ UNINSTALL PLUGIN:UNINSTALL PLUGIN ha_example;


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

2.1.2.3. Π‘Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ ΠΈ смСнныС Ρ‚ΠΈΠΏΡ‹ памяти

Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ ΡΡŠΠ΅ΠΌΠ½Ρ‹ΠΉ Ρ‚ΠΈΠΏ памяти, смСнный Ρ„Π°ΠΉΠ» Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ Π² смСнном ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ MySQL, Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ, Π²Ρ‹Π΄Π°ΡŽΡ‰ΠΈΠΉ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ INSTALL PLUGIN Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡŽ INSERT для Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ mysql.plugin.

2.2. ΠžΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°Π΅ΠΌΡ‹Π΅ Ρ‚ΠΈΠΏΡ‹ памяти

MySQL 5.1 ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ памяти:


MyISAM: примСняСмый ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Ρ‚ΠΈΠΏ памяти MySQL, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² Web, Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°Ρ… Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… срСдах ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. MyISAM обСспСчиваСтся Π²ΠΎ всСх конфигурациях MySQL. Описан Π² ΠΊΠ½ΠΈΠ³Π΅ "Руководство администратора Π‘Π£Π‘Π” MYSQL", Π³Π»Π°Π²Π° 7, Ρ€Π°Π·Π΄Π΅Π» "7.1 Π’Π°Π±Π»ΠΈΡ†Ρ‹ MyISAM".


InnoDB: использован для ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ запросов ΠΈ ряда свойств, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ ACID ΠΈ внСшниС ΠΊΠ»ΡŽΡ‡ΠΈ. InnoDB Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π²ΠΎ всС Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹Π΅ дистрибутивы MySQL 5.1. Описан Π² ΠΊΠ½ΠΈΠ³Π΅ "Руководство администратора Π‘Π£Π‘Π” MYSQL", Π³Π»Π°Π²Π° 7, Ρ€Π°Π·Π΄Π΅Π» "7.6 Π’Π°Π±Π»ΠΈΡ†Ρ‹ InnoDB".