Skip to content

MygramDB27-3700x faster than MySQL FULLTEXT

In-memory full-text search engine with MySQL replication

Quick Start

MySQL requires GTID mode and a replication user:

sql
SET GLOBAL gtid_mode = ON;
CREATE USER 'repl_user'@'%' IDENTIFIED BY 'your_password';
-- SELECT: for initial snapshot of search target tables
GRANT REPLICATION SLAVE, REPLICATION CLIENT, SELECT ON mydb.* TO 'repl_user'@'%';
bash
docker run -d --name mygramdb \
  -p 11016:11016 -p 8080:8080 \
  -e MYSQL_HOST=your-mysql-host \
  -e MYSQL_USER=repl_user \
  -e MYSQL_PASSWORD=your_password \
  -e MYSQL_DATABASE=mydb \
  -e TABLE_NAME=articles \
  ghcr.io/libraz/mygram-db:latest
bash
echo "SEARCH articles hello world" | nc localhost 11016

Client Libraries

Node.js

bash
npm install mygramdb-client
javascript
import { MygramClient } from 'mygramdb-client'

const client = new MygramClient({ host: 'localhost', port: 11016 })
const results = await client.search('articles', 'hello world')

mygramdb-client on GitHub

Released under the MIT License.