[Seasar-user:5459] Re: [S2Dao]MySQLでクエリキャッシュがヒットしない

Yusuke Kawabata [E-MAIL ADDRESS DELETED]
2006年 12月 14日 (木) 12:12:28 JST


川畑です。

> S2Daoとしては特別な処理を行っていません。
> 素のJDBCでクエリキャッシュを利用できるか、ご確認いただけます
> か? (そのコードを頂けるとありがたいです)

下記サンプルコードで接続、クエリ発行、切断を繰り返し
クエリキャッシュにヒットしていることを確認いたしました。

> また、クエリキャッシュはどの単位で効くものなのでしょうか?
データベース単位(キャッシュ自体はmysqld全体で共有)に効きます。

結果セットの大きさも考えたのですが、実際に発行しているクエリでは
S2PagerのLimitOffsetラッパーを使用しているので10件以下になり、
キャッシュ可能な最大値を超えていることもないようです。

--ここから---
package com.housedo.model.dao.test;
import java.sql.*;
public class PrefTest {

  public static void main(String[] args) {
    try{
    Class.forName("com.mysql.jdbc.Driver").newInstance();
    for(int i=0;i<100;i++){
      Connection con = DriverManager.getConnection(
          "jdbc:mysql://localhost/test", "root", "pass");
      Statement stmt = con.createStatement();
      ResultSet rs = stmt.executeQuery("SELECT * from E_PREF LIMIT 1");
      while (rs.next()) {
        System.out.println(rs.getString("PREF_ID"));
      }
      rs.close();
      stmt.close();
      con.close();
    }
    } catch (SQLException e1) {
      //略
    } catch (Exception e2) {
      //略
    }
  }
}
--ここまで--

----
Yusuke Kawabata <[E-MAIL ADDRESS DELETED]>




Seasar-user メーリングリストの案内