1 / 8

Работа MySQL с экстремально большими таблицами

Работа MySQL с экстремально большими таблицами. Григорий Рубцов , SQLinfo.ru rgbeast@sqlinfo.ru. Григорий Рубцов , rgbeast@sqlinfo.ru. MySQL может работать с миллиардами записей в таблице Полезные алгоритмы : пакетная вставка построение индекса. Григорий Рубцов , rgbeast@sqlinfo.ru.

Download Presentation

Работа MySQL с экстремально большими таблицами

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Работа MySQL с экстремально большими таблицами Григорий Рубцов, SQLinfo.ru rgbeast@sqlinfo.ru

  2. Григорий Рубцов, rgbeast@sqlinfo.ru • MySQL может работать с миллиардами записей в таблице • Полезные алгоритмы: • пакетная вставка • построение индекса

  3. Григорий Рубцов, rgbeast@sqlinfo.ru CREATE TABLE `l18_45_1` ( `lev` tinyint(4) NOT NULL, `x` smallint(6) NOT NULL, `y` smallint(6) NOT NULL, `t` smallint(6) NOT NULL, `i` tinyint(3) unsigned NOT NULL, `e` smallint(5) unsigned NOT NULL, `c` smallint(6) NOT NULL ) ENGINE=MyISAM;

  4. Григорий Рубцов, rgbeast@sqlinfo.ru В csv-файле 2.8 млрд. строк (81 Gb) mysql> LOAD DATA LOCAL INFILE 'l18_45_1.csv' INTO TABLE `l18_45_1`; Query OK, 2845803579 rows affected (48 min 59.57 sec) Records: 2845803579 Deleted:0 Skipped:0 Warnings:0 mysql> ALTER TABLE `l18_45_1` ADD KEY (lev,x,y); Query OK, 2845803579 rows affected (2 hours 52 min) Records: 2845803579 Duplicates:0 Warnings:0

  5. Григорий Рубцов, rgbeast@sqlinfo.ru • Cоздание индекса требует свободного места в tmpdir, иначе будет использован неэффективный алгоритм “Repair with keycache” • ALTER TABLEсначала копирует всю таблицу во временную;

  6. Григорий Рубцов, rgbeast@sqlinfo.ru mysql>SELECT t,i,e,c FROM l18_45_1 WHERE lev=7 AND x=1211 AND y=-19; +------+---+------+-------+ | t | i | e | c | +------+---+------+-------+ | 4999 | 1 | 3193 | 17934 | | 5097 | 1 | 2839 | 17004 | | 5015 | 1 | 3681 | 17331 | | 5021 | 1 | 3283 | 9422 | | 5023 | 1 | 3836 | 11277 | | 4991 | 1 | 4033 | 15957 | +------+---+------+-------+ 6 rows in set (0.11 sec)

  7. Григорий Рубцов, rgbeast@sqlinfo.ru

  8. Григорий Рубцов, rgbeast@sqlinfo.ru • Большие таблицы работают • Построение индексов масштабируется как O(N1.2), что недалеко от оптимального O(N log N) • Использование PARTITIONING улучшает масштабируемость

More Related