問題タブ [query-cache]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
mysql - MySQLUNIONクエリのキャッシュ
MySQLがキャッシュできることを読みましUNION's
たが、同時にそれを読みました。
クエリの開始時にコメント(およびスペース)を避ける–クエリキャッシュは、クエリをキャッシュできるかどうかを確認するために単純な最適化を行います。前述したように、SELECTクエリのみがキャッシュされるため、クエリの最初の文字を調べ、「S」の場合はキャッシュ内のクエリルックアップを続行し、そうでない場合はスキップします。
ソース:http ://www.mysqlperformanceblog.com/2006/07/27/mysql-query-cache/
そうは言っても、UNIONは括弧で始まるので、どのようにキャッシュされますか?
mysql.comによると:
最初の文字は「S」ではないので、スキップされます!?
私はあなたがこのようなことをすることができるのを見ました。
しかし、sub-select
そうなると、そのページによると、キャッシュされません。
では、どのようにしUNION
てキャッシュを取得するのでしょうか。
php - mysql テーブルを効率的に使用して複雑なクエリをキャッシュする
以前は、クエリに非常に多くの複数の結合がありました。
(少なくとも) 組み込みの MySql キャッシュ機能を使用できるようにするために、次の関数を作成しました。元のクエリを base64 にエンコードし、クエリが存在し、有効期限が切れていないかどうかを確認します。
これにより、パフォーマンスが劇的に向上し、ソース コードでキャッシュ時間のクエリごとに制御できるという利点があります。
ただし、忙しい時間帯には、削除が原因でテーブルが使用できなくなったり、単に選択に時間がかかりすぎたりします。これをより速く実行し、前述の問題を回避するために何をすべきかについて何か提案はありますか?
テーブル:
関数:
mysql - mysqlクエリキャッシュのヒット率が100%に達する
これが問題なのか、それとも良いことなのか悪いことなのか疑問に思います。クエリキャッシュのヒット率が100%に達することは、しばしば悪いことですか?
http://gameboxtools.com/uploads/imagehost/20120928064614983.png
nhibernate - NHibernateクエリキャッシュの有効期限
NHibernateのクエリキャッシュの有効期限を設定することは可能ですか?
第2レベルのキャッシュの場合、から実行できnhibernate.cfg.xml
ますが、SQLクエリキャッシュの方法が見つかりません。
編集:
php - データベースに再接続せずに、すべてのユーザーで同じMySQLクエリを使用する
シンプルにしようと思うので、必要なのは、MySQLクエリ(テーブルからレコードを選択)を実行し、たとえばcronジョブなどを使用して5分ごとにクエリを生成し、このクエリまたは結果をファイルに保存するか、可能であればグローバル変数を使用して、それをすべてのクライアントに提供します(つまり、データベースに再接続せずに、すべてのユーザーに同じクエリを使用します)。キャッシュを使用するように指示される人がいることはわかっていますが、検索しました。テーブルが変更された場合、新しいキャッシュがあり、テーブルは常に変更されています。テーブルが変更されたかどうかは関係ありません。すべてのクライアントに同じクエリを提供したいだけです。それは可能ですか?あなたの推薦をお願いします。ありがとう。
テーブルが変更されると(挿入、更新、削除など)、キャッシュは自動的に期限切れになります。そして、私のテーブルは絶えず変化しているので、テーブルが変更された場合でもキャッシュを保存することは可能ですか?または別の解決策を探す必要がありますか?
mysql - Yii-CActiveレコード-サーバークエリキャッシュを回避する方法
私は自分のWebアプリにYiiフレームワークを使用しています(ACTiveRecordを使用しています)。ACtiveRecordの後ろで、フレームワークはデータベースからのすべてのクエリを管理します。
私の問題は、共有サーバーを使用していることです。サーバーでクエリキャッシュが有効になっていることがわかりました。これは、Sの問題です。クエリキャッシュを回避する必要があります。私にはRELOAD特権がないため、FlUSHは機能しません。
各ActiveRecordデータベースフェッチを大まかなmySQLクエリとして使用した場合、NO_CACHEタグを使用したり、現在のタイムスタンプを含む誤ったクエリ用語を使用したりするなど、キャッシュを無効にする方法でクエリ自体を設定できたと思います(結果として各クエリは異なるクエリテキストです)。
皆さんへの私の質問は、Yii/ActiveRecordスキームでそれを行うための最良の方法は何ですか。findAll()関数の実装を変更できますか?私はCActiveRecordのサブクラスを持っているので、そこでできることがあれば完璧です。
長い質問でごめんなさい。イラン
java - スカラー クエリの Hibernate キャッシュ
この投稿を読みました。この投稿で提案されているように、オブジェクト全体を取得できません。MIN、MAX、Count 値を取得しています。というわけで新規投稿。以下は私が欲しいものと私が持っているものです。
- 私のSpringアプリはDB(MySQL)に変更を加えません。データを読み取るだけです。DB 内の既存のデータに加えられた変更は認識されません。
すべてのクエリがスカラー データを返します。オブジェクト全体ではありません。(例:
Select employee.name,office.address,MIN(employee.rec) from ... where..
)クエリをキャッシュしたい。そのため、休止状態の構成でクエリ キャッシュを有効
cacheable="true"
にし、名前付きクエリに追加しました。
4.二次キャッシュを有効にしました。
5.持続性クラスに以下のアノテーションを追加。
6. 24 時間ごとにキャッシュを更新したい。timeToLiveSeconds
そのため、 ehcache.xml で更新されましdefaultCache
た。
これは正しいアプローチですか?クエリがクエリ キャッシュから第 2 レベルのキャッシュにヒットするかどうかを知るにはどうすればよいですか?
更新: 統計を追加しましたが、第 2 レベルのキャッシュにヒット/ミスはありませんでした。
mysql - MySQLフラッシュクエリキャッシュ
最初の実行で18秒、後続の実行で4秒実行される低速のデータベースクエリがあります。「コールドスタート」実行時間を最適化しようとしています。しかし、それを継続的に再現することはできません。
select SQL_NO_CACHE
ディレクティブは役に立ちません。
以下のコマンドはいずれも、18秒後に実行されません。
データベースを再起動しても、データベースが再び長く実行されることはありません。
キャッシュをフラッシュする他のコマンドはありますか?
テーブルエンジンはInnoDBです。
hibernate - Query Cache Hibernate ローディング エンティティ
誰でもこの質問を解決するのを手伝ってくれますか? Infinispan を二次キャッシュとして使用し、Hibernate を ORM として使用しています。enityt とクエリ キャッシュの両方をオンにしました。
たとえば、Q1 は「BokkEntity b からの selet b where b.id < 5」であり、Q2 のような別のクエリは「select b from BokkEntity b where b.id < 7」
です。初めて Q1 を実行すると、5 がロードされます。永続ストアからキャッシュへのオブジェクト。2 番目のクエリを初めて実行すると、7 つのオブジェクトがキャッシュに読み込まれます。最初の 5 つのオブジェクトは両方のクエリで共通です。そして、私の理解によると、クエリ キャッシュは常に ID を格納するだけであり、エンティティ キャッシュがオンになっている場合、クエリ キャッシュ内の ID によって参照されるオブジェクトのキャッシュ内で検索が行われます。
したがって、私の質問は、Q2 (q1 の実行後) を初めて実行しているときに、両方の Q2 がすべてのオブジェクトを再度読み込み、エンティティ キャッシュでこれらを上書きする理由です。
クエリキャッシュが後続のリクエストに対して適切に機能していることを確認しました。つまり、Q1 または Q2 を再実行すると、データはキャッシュからアクセスされます。
これは緊急です。努力に感謝します。
ありがとう
ミーナ
java - MySQL クエリ キャッシングが Application Server から機能しない
以下は私のクエリキャッシュ設定です。
MySQL コマンド プロンプトからクエリを実行すると、キャッシュが機能し、結果が非常に速く表示されます。しかし、アプリケーションからの同じクエリでは機能しません。この問題を解決するためのアドバイスをお願いします。TomcatサーバーでJavaを使用しています