[英]GCLOUD SQL Performance improvement
我在谷歌雲 SQL 上進行了以下配置。 我的查詢速度不夠快。 它比我在本地機器上運行要慢得多。
我們正在使用InnoDB引擎。 我們有超過 50k~ 條記錄的用戶表。 如果我們做簡單的更新查詢來更新單行。
UPDATE User SET notificationToken="string token" WHERE id = "String ID";
這里 id 列是 varchar,我們分配了索引主鍵 + 唯一鍵。 上面的查詢需要 1 秒以上的時間來更新記錄。 如果我在本地機器上嘗試相同的查詢,它需要 0.0200 毫秒。 雲 sql 中的寫入操作似乎太慢了。
有關以下配置的任何指導或需要為 InnoDB 配置數據庫標志?
雲 SQL 配置:
機器的種類:
網絡吞吐量 (MB/s):500 of 2,000 存儲類型:SSD 存儲容量:10GB
磁盤吞吐量:
IOPS:
數據庫標志:
通常,由於需要考慮很多事情,因此很難給出關於性能調整的建議。 (其中一些只有您自己知道)。 但是您可以考慮以下幾點:
如果不使用索引是個好主意。 但是,如果刪除它們會使其他並行工作負載切換到順序掃描,那將是一個非常糟糕的主意。
刪除索引將影響對現有數據的查詢。 此外,索引的重新創建在未來也需要時間。
此選項可能有幫助,也可能沒有幫助 - 如果它增加不受限制的網絡和磁盤速度,它肯定會有所幫助。
要診斷查詢性能,建議啟用查詢日志記錄。 Cloud SQL 日志(與所有 Google Cloud 服務一樣)會發送到 Stackdriver Logging,並且可以通過 API 進行檢索。 要在 Cloud SQL 中啟用數據庫日志記錄,請按照以下步驟操作。 例如,要在其 Cloud SQL 實例上啟用慢查詢日志記錄(將 slow_query_log 標志設置為“開”)並啟用 Stackdriver 日志記錄(將 log_output 標志設置為“文件”)。
您還可以啟用性能模式數據庫標志。 可以通過 API 為更大的實例(db-n1-standard-8、db-n1-highmem-4 和更大)啟用 performance_schema 標志。
與其他數據庫標志一樣,performance_schema 標志可以在 settings.databaseFlags 數組(參考)中設置。 這是一個關於如何使用 curl 在現有實例上設置它的示例。
curl --header "Authorization: Bearer $(gcloud auth print-access-token)" \
--header "Content-Type: application/json" \
--data '{
"settings": {
"databaseFlags": [
{
"name": "performance_schema",
"value": "on"
}
]
}
}' -X PATCH https://www.googleapis.com/sql/v1beta4/projects/[PROJECT_NAME]/instances/myinstance
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.