RDSのクエリ実行の時間が掛かりすぎている場合の低減策はありますか?

0

WEBアプリの運営を行っています。

会員情報や統計情報等WEBアプリに必要な情報は全てRDSに保存して、WEBサーバーはEC2を使用しております。

現在RDSの設定画面からクエリキャッシュを有効化しているのですが、セッションのタイムアウトが起こる画面もあり、

全体的に画面の読み込みが遅くなっています。

SQLの実行速度を調べたところ、時間がかかっており、SQLの実行が遅い事が原因だと考えております。 SQL自体のindex等チューニングは行っているのですが、依然として状況は変わりません。

そもそもSQLの実行に時間が掛かりすぎている場合は、どのような対策を取ればよろしいのでしょうか? 出来ればサーバのスケールは上げずに他のAWSのサービスを使って解決したいと考えております。(コストがかかるので)

現在考えている対策としてクエリの実行結果をキャッシュして、クエリ自体の実行回数自体を減らしたいと考えております。 最良の方法があれば教えていただきたいです。

環境 WEBサーバ:EC2(各AZに3台づつ) DBサーバ:RDS(Aurora クラスターモード)

gefragt vor 2 Monaten541 Aufrufe
1 Antwort
1
Akzeptierte Antwort

どのようなクエリの実行が遅いのかにもよると思いますが、AWS公式だと以下のドキュメントが参考になると思います。
https://repost.aws/ja/knowledge-center/rds-mysql-slow-query
https://repost.aws/ja/knowledge-center/aurora-mysql-slow-select-query

MySQLのチューニングであれば以下のブログが参考になると思います。
https://qiita.com/ichi_zamurai/items/fdbe3872a505c22ee431

他の方法だとコストが発生しますがElastiCacheを使用してクエリ結果をキャッシュさせるのはいかがでしょうか?
https://docs.aws.amazon.com/ja_jp/AmazonElastiCache/latest/red-ug/WhatIs.html

profile picture
EXPERTE
beantwortet vor 2 Monaten
  • 回答ありがとうございます。

    Elasticacheのクエリキャッシュも検討したのですが、調べている過程でDynamoDBも有効だと思うのですが 一般的にはクエリキャッシュするにはElasticacheなのでしょうか? それともユースケースによりけりでしょうか?

  • 少し古いですが以下のブログが参考になると思います。 https://dev.classmethod.jp/articles/elasticache-is-very-good-lets-review/#toc-9
    確かにDynamoDBも使えると思いますが、クエリの実行回数によってはコスト高になります。

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen