Pull to refresh
2
2
Subscribers
Send message
ответил в Q&A
Как невозможно? :) очень даже возможно.
Puppet_ом раскладываем файл зон.
Есть раздел общий а есть раздел уникальный для каждого ДЦ.
Со стороны «клиента» все прозрачно. Тоесть для «клиента» никакой разницы, есть 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
а если выставить thread_cache_size с запасом скажем сразу поставить 100 или 500?

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Registered
Activity