Spec-Zone.ru › MariaDB

Типы таблиц CONNECT - Файлы данных

Большинство таблиц, обрабатываемых CONNECT, представляют собой обычные файлы данных DOS или UNIX, логически рассматриваемые как таблицы благодаря описанию, заданному при создании таблицы. Это описание происходит из оператора CREATE TABLE. В зависимости от приложения, эти таблицы могут уже существовать как файлы данных, используемые CONNECT как есть, или могут быть физически созданы CONNECT в результате оператора(ов) CREATE TABLE ... SELECT ... и/или INSERT.

Путь/имя файла задаётся параметром FILE_NAME. Если это относительный путь/имя, то оно будет относиться к каталогу базы данных, содержащему файл таблицы .FRM.

Если не указано иное, тип таблицы файла стабилен.

Таблицы из нескольких файлов

Многофайловая таблица — это таблица, которая физически содержится в нескольких файлах одного типа вместо одного. Эти файлы обрабатываются последовательно во время выполнения запроса, и результат такой же, как если бы все файлы таблицы были объединены в один. Это отлично подходит для обработки файлов из разных источников (например, журналов кассовых аппаратов) или созданных в разные периоды времени (например, ежемесячных отчётов банка), рассматриваемых как одна таблица. Обратите внимание, что операции над такими файлами ограничены последовательными операциями Select и Update; и что VEC-таблицы с несколькими файлами не поддерживаются CONNECT. Список файлов зависит от настройки параметра multiple оператора CREATE TABLE для этой таблицы.

Многофайловые таблицы задаются параметром MULTIPLE=n, который может принимать четыре значения:

0 Не таблица с несколькими файлами (по умолчанию). Это можно использовать в операторе ALTER TABLE.
1 Таблица состоит из файлов, расположенных в одном каталоге. Параметр FILE_NAME — это шаблон, например 'cash*.log', которому соответствуют все пути/имена файлов таблицы.
2 FILE_NAME задаёт имя файла, содержащего пути/имена всех файлов таблицы. Этот файл можно создать, используя таблицу DIR.
3 Подобно multiple=1, но также включает подходящие файлы из подкаталогов каталога.

Специальный столбец FILEID, описание которого приведено здесь, позволяет оптимизировать запросы, фильтруя список файлов или выполняя группировку по файлам, составляющим многофайловую таблицу.

Примечание: Многофайловые таблицы изначально не были реализованы для XML-таблиц. Это ограничение было удалено в версии 1.02.

Формат записей

Эта характеристика применима к файлам таблиц, обрабатываемым функциями ввода/вывода операционной системы. Она фиксирована для типов таблиц FIX, BIN, DBF и VEC, и она переменная для DOS, VCT, FMT и некоторых JSON таблиц.

Для фиксированных таблиц большинство операций ввода/вывода выполняются блоками по BLOCK_SIZE строк. Это уменьшает количество операций ввода/вывода и позволяет использовать индексирование блоков.

Начиная с версии CONNECT 1.6.6, параметр BLOCK_SIZE также можно указать для переменных таблиц. Затем CONNECT создаёт файл, похожий на файл индексации блоков, который указывает размер в байтах каждого блока из BLOCK_SIZE строк. Это позволяет использовать операции ввода/вывода блоками и индексирование блоками для переменных таблиц. Это также позволяет CONNECT возвращать точный номер строки для команд info.

Сопоставление файлов

Для таблиц на основе файлов разумного размера время обработки можно значительно увеличить под Windows(TM) и некоторых вариантах UNIX или Linux, используя технику «сопоставления файлов», в которой файл обрабатывается так, как будто он целиком находится в памяти. Сопоставление задаётся при создании таблицы с помощью параметра MAPPED=YES. Это не относится к таблицам, которые не обрабатываются функциями системного ввода/вывода (XML и INI).

Таблицы больших файлов

Поскольку все файлы обрабатываются стандартными функциями ввода/вывода операционной системы, их размер ограничен 2 ГБ, максимальным размером, обрабатываемым стандартными функциями. Для некоторых типов таблиц CONNECT может обрабатывать файлы, превышающие 2 ГБ, или склонные к превышению этого предела. Это типы FIX, BIN и VEC. Чтобы указать CONNECT использовать функции ввода/вывода, обрабатывающие большие файлы, задайте параметр huge=1 или huge=YES для этой таблицы. Однако обратите внимание, что CONNECT не может случайным образом обращаться к таблицам, содержащим более 2Г записей.

Сжатые таблицы файлов

CONNECT может создавать и обрабатывать некоторые таблицы, файлы данных которых сжаты. Единственный поддерживаемый формат сжатия — gzlib. Форматы Zip и zlib поддерживаются по-разному. Типы таблиц, которые могут быть сжаты, это DOS, FIX, BIN, CSV и FMT. Это может сэкономить место на диске за счёт несколько более длительного времени обработки.

Для сжатых таблиц существуют некоторые ограничения:

  • Сжатые таблицы не индексируются.
  • Обновление и частичное удаление не поддерживаются.

Используйте числовой параметр сжатия для указания сжатой таблицы:

  1. Не сжато
  2. Сжато в формате gzlib.
  3. Составлено из сжатых блоков по block_size записей (что позволяет использовать индексирование блоков)

Таблицы с реляционным форматом

Они основаны на файлах, записи которых представляют одну строку таблицы. Только представление столбцов в каждой записи может отличаться. Поддерживаются следующие таблицы с реляционным форматом:

  • Типы таблиц DOS и FIX
  • Тип таблицы DBF
  • Тип таблицы BIN
  • Тип таблицы VEC
  • Типы таблиц CSV и FMT

Типы таблиц NoSQL

Они основаны на файлах, которые не соответствуют реляционному формату, но часто представляют иерархические данные. CONNECT может обрабатывать файлы JSON, INI-CFG, XML и некоторые HTML-файлы.

Способ обработки отличается от PostgreSQL. Помимо включения в таблицу некоторых значений столбцов определенного формата данных (JSON, XML) для обработки специфическими функциями, CONNECT может напрямую использовать файлы JSON, XML или INI, которые могут быть созданы другими приложениями, и это определение таблицы описывает, где и как должна извлекаться содержащаяся информация.

Это также отличается от того, как MariaDB работает с динамическими столбцами, что близко к тому, как MySQL и PostgreSQL работают с типом столбца JSON.

Поддерживаются следующие типы NoSQL:

  • Тип таблицы XML
  • Тип таблицы JSON
  • Тип таблицы INI
Содержимое, воспроизведённое на этом сайте, является собственностью соответствующих владельцев, и это содержимое не проходит предварительной проверки MariaDB. Мнения, информация и мнения, выраженные в этом содержании, не обязательно отражают точку зрения MariaDB или любой другой стороны.

© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/connect-table-types-data-files/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API