Со стороны «клиента» все прозрачно. Тоесть для «клиента» никакой разницы, есть PARTITION или его нет.
Разница есть для Mysql сервера и ОС.
Во первых файл таблицы не один огромный, 2-3-4-10G, а несколько поменьше — 200-300-500-700Mb.
При поиске в таблице (where) mysql проходит только по нужно «кусочку» а не перелопачивает весь файл таблицы целиком.
Это очень сильно облегчает жизнь таблиц в которых работают в основном с последними данными и в которых много старых данных которые нельзя удалять.
Explain partitions показывает какие части будут обработаны (колонка partitions)
mysql> explain partitions select * from foo where date_added between '2010-03-11' and '2010-03-12';
+----+-------------+------------+------------+-------+---------------+------+---------+------+------+-------------+
| id | select_type | table | partitions | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+------------+------------+-------+---------------+------+---------+------+------+-------------+
| 1 | SIMPLE | foo | p1,p4 | range | day | day | 3 | NULL | 79 | Using where |
+----+-------------+------------+------------+-------+---------------+------+---------+------+------+-------------+
P.S. На всякий случай скажу что затея имеет смысл если включена опция innodb_file_per_table
Puppet_ом раскладываем файл зон.
Есть раздел общий а есть раздел уникальный для каждого ДЦ.
Разница есть для Mysql сервера и ОС.
Во первых файл таблицы не один огромный, 2-3-4-10G, а несколько поменьше — 200-300-500-700Mb.
При поиске в таблице (where) mysql проходит только по нужно «кусочку» а не перелопачивает весь файл таблицы целиком.
Это очень сильно облегчает жизнь таблиц в которых работают в основном с последними данными и в которых много старых данных которые нельзя удалять.
Explain partitions показывает какие части будут обработаны (колонка partitions)
P.S. На всякий случай скажу что затея имеет смысл если включена опция innodb_file_per_table