1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/acans-adb

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
README.md 4.3 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 27.11.2024 18:56 4d93fac

ADB

База данных: характеристики

  • База данных с характеристиками хранилища временных рядов, колоночной базы данных и возможностью чтения и записи только в «горячей» области.

  • Сверхвысокая скорость вставки (до 200 000 операций в секунду на одном ядре, проверено в тестовой среде Ubuntu + AMD Ryzen5 3500U).

  • Быстрый многоусловный запрос (использование метода индексированного альтернативного запроса, чем больше столбцов запрашивается, тем быстрее выполняется запрос).

  • Очень быстрый LIKE-запрос с использованием двоичного поиска, эффективность которого выше, чем у полного равенства.

  • Гибкое управление памятью, низкое использование памяти (каждая таблица может независимо управлять использованием памяти).

  • Поддержка сжатия zstd, экономия дискового пространства более чем в 10 раз.

  • Использование REST API для подключения без дополнительных затрат.

Способы подключения

Rest Api

Прямое построение запросов через API-документацию.

Socket.io

Инициализация соединения:

// Импорт модуля
// Для браузера
<script src="/socket.io/socket.io.js"></script>
// Для nodejs
const io = require('socket.io-client')

// Создание соединения
const client = io('http://127.0.0.1:7170')
client.on('connect', () => {
  // Соединение установлено успешно
})

API

createTable(db.table, cols, opt)

Создание структуры таблицы.

curl -X POST http://127.0.0.1:7170/createTable -d '{"ns": "tt.test", "cols": {}}'
client.emit('createTable', 'tt.test', {
  name: { len: 10, type: 'string', encoding: 'utf8'},
  uptime: { type: 'double'},
  test: { len: 20, type: 'string', encoding: 'utf8'},
  rand: { len: 20, type: 'string', encoding: 'utf8'},
  bool: { type: 'bool', default: false },
  int: { len: 2, type: 'int' }, // int len: 1-6, 1: 128, 2: 128 * 256, 3: 128 * 250 * 256
  time: { type: 'time' },
  date: { len: 20, type: 'string', encoding: 'utf8'}
}, { update: true })

create

Вставка данных.

http://127.0.0.1:7170/tt.test/create?name=hehe&rand=165
test.create({
  name: 'test',
  uptime: 1.23123,
  test: 'hehedada',
  rand: '371893',
  bool: true,
  int: Acan.random(0, 99),
  time: 1592188598,
  date: '2020-06-15 10:36:56'
})

find

Запрос данных.

http://127.0.0.1:7170/tt.test/find?name=hehe&rand[$like]=165&$limit=10&$skip=0
test.find({
  name: 'test', // Полное равенство при запросе
  test: { $like: ['hehe', 'dada'] } // LIKE-запрос, поддержка массива
  rand: { $in: ['123456', '234567'] } // Массив полного равенства при запросе
}, { limit: 10, skip: 0 })

findOne

Запрос одной строки данных.

http://127.0.0.1:7170/tt.test/findOne?name=hehe&rand[$like]=165&$skip=0
test.findOne({
  name: 'test', // Полное равенство при запросе
  test: { $like: ['hehe', 'dada'] } // LIKE-запрос, поддержка массива
  rand: { $in: ['123456', '234567'] } // Массив полного равенства при запросе
}, { skip: 0 })

count

Подсчёт количества данных.

http://127.0.0.1:7170/tt.test/count?name=hehe&rand[$like]=165
test.count({
  name: 'test', // Полное равенство при запросе
  test: { $like: ['hehe', 'dada'] } // LIKE-запрос, поддержка массива
  rand: { $in: ['123456', '234567'] } // Массив полного равенства при запросе
})

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/acans-adb.git
git@api.gitlife.ru:oschina-mirror/acans-adb.git
oschina-mirror
acans-adb
acans-adb
master