1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

SQLサンプルコード (MySQLで動作確認)

Posted at

概要

タイトルの通りSQLのTips的なサンプルコードです。MySQLで動作確認をしています。
内容的には個人的な備忘録になるかもしれませんが、随時更新していきます。

環境

  • Windows10 Professional
  • MySQL 5.6.25

参考

時間のかかるクエリを疑似的に発生させる

SLEEP関数を使用します。

> select sleep(10);
+-----------+
| sleep(10) |
+-----------+
|         0 |
+-----------+
1 row in set (10.00 sec)

技術検証や動作確認などでタイムアウトを意図的に起こしたい場合、下記のようなビューを作り、それに対して問い合わせを行います。

CREATE OR REPLACE VIEW temp_v (
      id
    , sleep
    , create_at ) AS
SELECT UUID() AS id
    , SLEEP(10) AS sleep
    , NOW() AS create_at
;
mysql> select * from temp_v;
+--------------------------------------+-------+---------------------+
| id                                   | sleep | create_at           |
+--------------------------------------+-------+---------------------+
| 68ce1e08-940a-11e7-9c5f-1c6f65331b46 |     0 | 2017-09-07 21:23:28 |
+--------------------------------------+-------+---------------------+
1 row in set (10.00 sec)

Javaでは下記のようなエンティティクラスを作成しJPAで検索すると結果が返るまで10秒かかります。
このことを利用してトランザクションタイムアウトを意図的に発生させることができます。

エンティティクラス

@Entity
@Table(name="temp_v")
public class Temp implements Serializable {

    private static final long serialVersionUID = -7295335149208136304L;

    @Id
    private String id;
    @Column(name="sleep")
    private Integer sleep;
    @Column(name="create_at")
    private LocalDateTime createAt;

    @Override
    public String toString() {
        return "Temp{" +
                "id='" + id + '\'' +
                ", sleep=" + sleep +
                ", createAt=" + createAt +
                '}';
    }
}

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?