Improve model query performance tracing
This commit is contained in:
@@ -3,7 +3,7 @@ use async_trait::async_trait;
|
||||
use chrono::prelude::*;
|
||||
use serde::{Deserialize, Serialize};
|
||||
use sqlx::postgres::PgPool;
|
||||
use tracing::debug;
|
||||
use tracing::instrument;
|
||||
|
||||
use super::ListParams;
|
||||
use super::Model;
|
||||
@@ -32,19 +32,18 @@ impl Model for Shop {
|
||||
self.id
|
||||
}
|
||||
|
||||
#[instrument(level = "debug", skip(db))]
|
||||
async fn get(db: &PgPool, id: i32) -> Result<Self> {
|
||||
let timer = std::time::Instant::now();
|
||||
let result = sqlx::query_as!(Self, "SELECT * FROM shops WHERE id = $1", id)
|
||||
.fetch_one(db)
|
||||
.await?;
|
||||
let elapsed = timer.elapsed();
|
||||
debug!("SELECT * FROM shops ... {:.3?}", elapsed);
|
||||
Ok(result)
|
||||
Ok(
|
||||
sqlx::query_as!(Self, "SELECT * FROM shops WHERE id = $1", id)
|
||||
.fetch_one(db)
|
||||
.await?,
|
||||
)
|
||||
}
|
||||
|
||||
#[instrument(level = "debug", skip(db))]
|
||||
async fn save(self, db: &PgPool) -> Result<Self> {
|
||||
let timer = std::time::Instant::now();
|
||||
let result = sqlx::query_as!(
|
||||
Ok(sqlx::query_as!(
|
||||
Self,
|
||||
"INSERT INTO shops
|
||||
(name, owner_id, description, is_not_sell_buy, sell_buy_list_id, vendor_id,
|
||||
@@ -60,14 +59,11 @@ impl Model for Shop {
|
||||
self.vendor_gold,
|
||||
)
|
||||
.fetch_one(db)
|
||||
.await?;
|
||||
let elapsed = timer.elapsed();
|
||||
debug!("INSERT INTO shops ... {:.3?}", elapsed);
|
||||
Ok(result)
|
||||
.await?)
|
||||
}
|
||||
|
||||
#[instrument(level = "debug", skip(db))]
|
||||
async fn list(db: &PgPool, list_params: ListParams) -> Result<Vec<Self>> {
|
||||
let timer = std::time::Instant::now();
|
||||
let result = if let Some(order_by) = list_params.get_order_by() {
|
||||
sqlx::query_as!(
|
||||
Self,
|
||||
@@ -93,8 +89,6 @@ impl Model for Shop {
|
||||
.fetch_all(db)
|
||||
.await?
|
||||
};
|
||||
let elapsed = timer.elapsed();
|
||||
debug!("SELECT * FROM shops ... {:.3?}", elapsed);
|
||||
Ok(result)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user