[英]My Google Cloud SQL instance connection and/or queries are too slow
在我的工作中,我們的任務是查看是否可以將我們的 App 數據庫從當前服務器遷移到Google Cloud SQL
實例。 我創建了 GCP,配置了實例並導入了數據庫。
問題是我已經從我的項目(一個 CakePHP localhost 應用程序)連接到gcloud
的數據庫,在運行一些查詢后,我注意到它們花費了很多時間並且視圖的呈現非常慢。 我已經升級了實例的存儲(以獲得更好的讀/寫速度)和內核/內存,但沒有結果。
以下是一些查詢及其花費的時間:
Query. Time. Affected.
GCloud
SELECT * FROM clients WHERE company_id = 3711; 50ms. 3rows.
Localhost
SELECT * FROM clients WHERE company_id = 3711; 1ms. 3rows.
還有我的其中一個視圖中的 CakePHP DebugKit 計時器響應:
GCloud - Controller Action ---- 317.55 ms.
Localhost - Controller Action ---- 7.44 ms.
另一個視圖使用GCloud
需要 3+ 秒,我的localhost
164 ms
。
我用的是us-central1
區,已經升級了SSD、內核、RAM,用過這樣的小查詢也無濟於事。 我認為這可能與延遲有關,但我沒有絲毫想法。
我從墨西哥查詢,具體來說是從哈利斯科州查詢。
我的實例是一個帶有 13gb ram db-n1-highmem-2
highmem db-n1-highmem-2
的 2 核
在我的本地主機SELECT @@log_bin
返回 0。
文件:
EXPLAIN SELECT SQL_NO_CACHE * FROM clients WHERE company_id = 3711;
1 SIMPLE clients NULL ref find_by_id,clients_modified,company_id_3,clients_by_creator,clients_by_owner find_by_id 4 const 3 100.00 Using where
SHOW INDEX FROM clients;
Table non_unique key_name seq_in_index column_name collation cardinality sub_part packed null index_type
clients 0 PRIMARY 1 id A 685571 NULL NULL BTREE
clients 0 PRIMARY 2 user_id A 685571 NULL NULL BTREE
clients 0 PRIMARY 3 company_id A 685571 NULL NULL BTREE
clients 0 find_by_id 1 company_id A 1159 NULL NULL BTREE
clients 0 find_by_id 2 id A 685571 NULL NULL BTREE
clients 1 clients_modified 1 company_id A 1587 NULL NULL BTREE
clients 1 clients_modified 2 modified A 512088 NULL NULL YES BTREE
clients 1 company_id_3 1 company_id A 1254 NULL NULL BTREE
clients 1 company_id_3 2 prospectus A 3642 NULL NULL BTREE
clients 1 company_id_3 3 last_update A 303012 NULL NULL YES BTREE
clients 1 clients_by_creator 1 company_id A 1503 NULL NULL BTREE
clients 1 clients_by_creator 2 user_id A 3577 NULL NULL BTREE
clients 1 clients_by_owner 1 company_id A 1423 NULL NULL BTREE
clients 1 clients_by_owner 2 user_assigned_id A 3949 NULL NULL BTREE
clients 1 company_id_3 3 last_update A 303012 NULL NULL YES BTREE
clients 1 clients_by_creator 1 company_id A 1503 NULL NULL BTREE
clients 1 clients_by_creator 2 user_id A 3577 NULL NULL BTREE
clients 1 clients_by_owner 1 company_id A 1423 NULL NULL BTREE
clients 1 clients_by_owner 2 user_assigned_id A 3949 NULL NULL BTREE
Rate Per Second=RPS - 考慮您的 Google Cloud 數據庫標志的建議 - my.cnf [mysdld] 部分
innodb_lru_scan_depth=100 # from 2048 to conserve 95% CPU cycles used for function
innodb_flush_neighbors=0 # from 2 with SSD storage no need to look for neighbors
innodb_buffer_pool_size=4G # from ~ 10G to support less than 1G of data, reduce mgmt cycles
innodb_old_blocks_time=20000 # from 1000 to reduce select_scan RPhr of 1,395
提供反饋,請在實施后+ 24 小時使用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.