Partitioning in MySQL: поделитесь опытом использования

pilot911

Новичок
Partitioning in MySQL: поделитесь опытом использования

Если кто-то использовал любой способ секционирования в своих проектах, просьба поделиться информацией или собственным опытом

-~{}~ 22.10.08 12:04:

почитал доки, похоже, самый оптимальный вариант в 5.1 - это конструкция типа

PHP:
CREATE TABLE orders_range (
  id INT AUTO_INCREMENT PRIMARY KEY,
  customer_surname VARCHAR(30),
  store_id INT,
  salesperson_id INT,
  order_date DATE,
  note VARCHAR(500)
) ENGINE = MYISAM
  PARTITION BY RANGE(id) (
    PARTITION p0 VALUES LESS THAN(10000),
    PARTITION p1 VALUES LESS THAN(20000),
    PARTITION p2 VALUES LESS THAN(30000),
    PARTITION p3 VALUES LESS THAN(40000),
    PARTITION p4 VALUES LESS THAN(50000)
);
 

Gas

может по одной?
похоже, самый оптимальный вариант
Для определения оптимальности нужны критерии, ты их не указал, следовательно мы не можем ничего сказать.
Но партиции по автоикрементному полю мне кажутся безсмысленными.

или собственным опытом
сколько нибудь серьёзного опыта не имею в данном вопросе, так игрался немного, когда объявляли что релиз 5.1 будет 3-ем квартале этого года. Пока всё жду.
 

zerkms

TDD infected
Команда форума
Gas
если выборка будет по какому-то "третьему" полю, то партишнинг даст распределение вычислений. так что не совсем и бессмысленно деление по автоинкременту. нет?
 

Gas

может по одной?
zerkms
ты хочешь сказать что mysql начнёт _паралельный_ скан всех партиций в этом случае?
я просто не совсем понимаю за счёт чего будет плюс - ведь по "третьему" полю определить партицию нельзя, следовательно нужно сканить всё или не так?
 

zerkms

TDD infected
Команда форума
Gas
мне _кажется_, что я где-то об этом читал. и как бы это было не на mysqlperformanceblog. :-[
 

Gas

может по одной?
ok, поищу, хотя не припомню чтоб слышал о таком
 

zerkms

TDD infected
Команда форума
Gas
настаивать не буду, но вроде читал, и вроде об этом, и вроде там... :)
 

pilot911

Новичок
Автор оригинала: Gas
zerkms
ты хочешь сказать что mysql начнёт _паралельный_ скан всех партиций в этом случае?
я просто не совсем понимаю за счёт чего будет плюс - ведь по "третьему" полю определить партицию нельзя, следовательно нужно сканить всё или не так?
с производительностью не оч плохо, даже если по третьему полю (индексируемому ) искать

на 1млн записях, деленных на 2 раздела, получается такой результат по выборке одной записи

PHP:
таблица CREATE TABLE t (column1 INT PRIMARY KEY, column2 INT) ENGINE=INNODB


ALTER TABLE t
PARTITION BY RANGE (column1)
(
 PARTITION p1 VALUES LESS THAN (500000),
 PARTITION p10 VALUES LESS THAN MAXVALUE
) 



Test         Average Time             Average Time
             Without Partitioning     With Partitioning

PRIMARY          0.0006               0.0006
NON-PRIMARY      1.85                 2.01
-~{}~ 22.10.08 13:05:

http://dev.mysql.com/tech-resources/articles/mysql_5.1_partitions.html
 
Сверху