ICSQLite

ICSQLite is a cloud SQLite database on Internet Computer and provides SDK for developers to use.
Our goal is to help developers quickly migrate web2 applications to Internet Computer.

Usage

In your Cargo.toml:

toml [dependencies] ic-sqlite = "0.1.0"

Limitations & Suggestions

Limited by the total number of cycles of a call, if the number of rows retrieved by a single SQL query exceeds a certain amount, the call will crash.

SQL statement suggestions

Performance benchmarks for SQL commands

| SQL
commands | performance counter
1w single table data | performance counter
10w single table data | performance counter
50w single table data | performance counter
100w single table data | |----------------------------------|------------------------------------------------|-------------------------------------------------|-------------------------------------------------|--------------------------------------------------| | create table | 1194347 | 1433766 | 2565609 | 4066020 | | create index
(empty table) | 884588 | 1122419 | 2241730 | 3601724 | | count | 209847 | 2995943 | 15183853 | 30392494 | | insert | 350256 | 349635 | 351731 | 355381 | | select
(where primary key) | 265363 | 265960 | 265345 | 268112 | | select
(where index field) | 312389 | 314594 | 314666 | 319276 | | select
(where like field) | 178263088 | 1784671532 | limit for single message execution | limit for single message execution | | update
(where primary key) | 385492 | 389192 | 391599 | 394111 | | update
(where index filed) | 239384 | 237908 | 237993 | 240998 | | delete
(where primary key) | 429190 | 259541 | 419615 | 423064 |

IC Canister Simple example usage