partition tables, итоги

Jun 20, 2016 01:53

Текущий вариант таблицы: дробление range, нарезана на 360 кусков на 1 градусу долготы.
Координаты в mas, I*4, два независимых индекса по долготе и по широте.

Оказалось крайне важным предварительное упорядочивание данных.
Если в сегментах строки уложены в порядке по широте (ORDER BY latitude, longitude), то среднее время выборки объектов по площадке 12х12 минут составляет 80+/-30 милисекунд.
А если же данные были уложены по долготе (ORDER BY longitude, latitude), то 5-7 секунд. На два порядка больше.
Это при прочих равных.

Таблица MyISAM. Проверял как это будет на InnoDB. Сделал вариант, влил 1 гиг для теста. Время выборки оказалось примерно на порядок больше, чем для абсолютно такое же таблицы ISAM.

Очередной раз вижу преимущество узкоспециалированных инструментов над универсальными.

В оригинате данные представлены 900 бинарными фпйлами fixed records length и 1 весьма примитивный индекс на 10 мегабайт (всего-то!). Плюс крошечная програмка на фортране в 1000 строк вместе с комментариями. Всего 8 гиг. Для некоторых полей применена "познаковая" упаковка.

В виде мускуль-таблицы это 11 гиг (9 данные и 2 индексы).

Время выборки примерно такое же.
Previous post Next post
Up