mirror of
https://github.com/launchbadge/sqlx.git
synced 2025-10-03 07:45:30 +00:00
46 lines
1.2 KiB
Rust
46 lines
1.2 KiB
Rust
use sqlx::{Connection, Executor};
|
|
|
|
use std::time::Instant;
|
|
|
|
#[derive(sqlx::FromRow)]
|
|
struct Test {
|
|
id: i32,
|
|
}
|
|
|
|
fn main() -> sqlx::Result<()> {
|
|
sqlx_rt::block_on(async {
|
|
let mut conn = sqlx::SqliteConnection::connect("sqlite://test.db?mode=rwc").await?;
|
|
let delete_sql = "DROP TABLE IF EXISTS test";
|
|
conn.execute(delete_sql).await?;
|
|
|
|
let create_sql = "CREATE TABLE IF NOT EXISTS test (id INTEGER PRIMARY KEY NOT NULL)";
|
|
conn.execute(create_sql).await?;
|
|
|
|
let mut tx = conn.begin().await?;
|
|
for entry in 0i32..100000 {
|
|
sqlx::query("INSERT INTO test (id) VALUES ($1)")
|
|
.bind(entry)
|
|
.execute(&mut tx)
|
|
.await?;
|
|
}
|
|
tx.commit().await?;
|
|
|
|
for _ in 0..10i8 {
|
|
let start = chrono::Utc::now();
|
|
|
|
println!(
|
|
"total: {}",
|
|
sqlx::query!("SELECT id from test")
|
|
.fetch_all(&mut conn)
|
|
.await?
|
|
.len()
|
|
);
|
|
|
|
let elapsed = chrono::Utc::now() - start;
|
|
println!("elapsed {}", elapsed);
|
|
}
|
|
|
|
Ok(())
|
|
})
|
|
}
|