[英]Amazon RDS MySQL instance performs very slow
我已經在 Amazon EC2(新加坡地區)上發布了我的網站,並且我已經使用 MySQL RDS 實例進行數據存儲。 除了性能之外,一切都很好。
我似乎,我所有的查詢,尤其是 select 語句,執行得非常緩慢。 如果我在本地 PC 上檢查此問題,則它運行良好。 但是當我嘗試從 RDS 實例獲取數據時,速度非常慢。 一些 select 語句需要 2-3 秒來獲取數據。
我已經正確調整了所有表索引,並根據需要進行了規范化/反規范化。 我已經對 RDS 自定義參數組(例如max_connection 、緩沖區等)進行了所有必要的設置。 我不知道我是否遺漏了什么,但它對我不起作用 - 性能沒有提高。
那么,有人可以幫我解決這個問題嗎?
值得注意的是,無論出於何種原因,RDS 中默認情況下 MySQL 查詢緩存是關閉的。 本周我們自己也艱難地了解到了這一點。
這對您的初始查詢的性能沒有幫助,但總體上可能會加快速度。
要重新啟用查詢緩存:
query_cache_size
和query_cache_type
(免責聲明:我不是 DBA,所以我在這里可能還缺少其他東西)
重要的是讓您的 RDS 和 EC2 實例不僅在同一個區域中,而且在同一個可用區中,以最大限度地減少延遲。
我在愛爾蘭的 EC2 上托管了一個 API,並將數據庫移到了美國弗吉尼亞州的 MySQL 集群,我們為另一個項目設置了該集群,每個 SQL 查詢的往返都使 API 無法使用。
對我來說,這與 MySQL 無關,而是與我在t2.medium
上的實例類型有關。 問題是我用完了 CPU 積分,因為數據庫上的負載太高,余額一直在下降,直到最后,我每小時獲得的積分遠遠少於需要的積分。
這是我在 RDS CloudWatch 的 CPU Credit Usage 下看到的:
如果您遇到同樣的問題,可能是時候切換到不同的實例了。 以下是實例類型列表:
https://aws.amazon.com/rds/instance-types/
希望這可以幫助。
假設系統具有更高的讀取率,可以通過以下方式提高 RDS MySQL 性能:
首先,我強烈建議使用以下方法查看這些查詢
顯示完整的進程列表
您可以在SHOW FULL PROCESSLIST上閱讀更多相關信息
這將顯示每個查詢所需的時間。
然后你可以使用
解釋
您可以在EXPLAIN上閱讀更多相關信息
這將顯示您是否需要對查詢進行一些改進
您可以通過使用分析來檢查查詢在哪里花費時間。 使用以下查詢:
這將告訴您查詢的狀態以及查詢花費的時間。 如果分析返回的所有時間總和小於查詢的實際執行時間,那么可能是網絡帶寬等其他因素造成的。
始終應在同一 AWS 可用區中部署源和 rds 以降低網絡延遲,並應在 VPC 中為 RDS 創建私有端點鏈接以通過內部網絡而不是通過 Internet 路由連接 RDS 端點。
參考: https : //docs.aws.amazon.com/AmazonRDS/latest/UserGuide/vpc-interface-endpoints.html
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.