日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

閃回查詢

通過閃回查詢(Flashback Query)功能,您可以高效查詢集群、數(shù)據(jù)庫、數(shù)據(jù)表在過去某個時間點的信息。

前提條件

  • PolarDB集群版本需滿足如下條件之一:

    • PolarDB MySQL版8.0.2版本且修訂版本為8.0.2.2.2及以上

    • PolarDB MySQL版8.0.1版本且修訂版本為8.0.1.1.24及以上

    • PolarDB MySQL版5.7版本且修訂版本為5.7.1.0.21及以上

    • PolarDB MySQL版5.6版本且修訂版本為5.6.1.0.32及以上

    如何確認集群版本,詳情請參見查詢版本號

  • 閃回查詢功能需要開啟 innodb_backquery_enable參數(shù),該參數(shù)默認關(guān)閉。使用該功能前,您需要在PolarDB集群的參數(shù)配置中先開啟 innodb_backquery_enable參數(shù)。

    說明

    如果您在開啟 innodb_backquery_enable參數(shù)之前執(zhí)行閃回查詢,系統(tǒng)會返回報錯ERROR 1815 (HY000): Internal error: the backquery_time set is out of range, too old

注意事項

  • 推薦在單表場景中使用閃回查詢,不推薦在復雜查詢場景下(如JOIN、子查詢)使用閃回查詢。

  • 推薦使用主鍵來進行閃回查詢,目前不支持使用二級索引來進行閃回查詢。若使用二級索引來進行閃回查詢,會轉(zhuǎn)換為全表掃描,查詢性能會比較慢。

  • 由于Undo日志保留了部分歷史差值數(shù)據(jù),在配置的innodb_backquery_window時間窗口內(nèi),打開閃回查詢功能會使得Undo表空間增長。除此之外,在BLOB場景下也可能會存在表空間增長的情況,且在表空間增長的過程中,寫入性能會略有下降。

  • 單條記錄的歷史版本上限是10萬次。超過該上限后,若閃回查詢該記錄,系統(tǒng)將會報錯record undo history version exceed limit

  • 在執(zhí)行DDL操作后,之前的數(shù)據(jù)不能進行閃回查詢,若閃回查詢DDL之前的數(shù)據(jù),系統(tǒng)可能會報錯Backquery primary key invisible

  • 開啟閃回查詢功能前刪除表,無法通過閃回查詢功能查看。開啟閃回查詢功能后刪除表,可以通過閃回查詢功能查看。

語法說明

  • 單表閃回查詢語法

    SELECT column_name_list FROM table_name AS OF TIMESTAMP time_expr alias WHERE...;
  • 多表閃回查詢語法

    SELECT column_name_list FROM table1_name AS OF TIMESTAMP time_expr alias1,table2_name AS OF TIMESTAMP time_expr alias2 WHERE... ;
  • 多表JOIN閃回查詢語法

    SELECT column_name_list FROM table1_name AS OF TIMESTAMP time_expr alias1 
    JOIN table2_name AS OF TIMESTAMP time_expr alias2 ON join_cond1 
    JOIN table3_name AS OF TIMESTAMP time_expr alias3 ON join_cond2
    WHERE...;

語法中涉及的參數(shù)說明如下:

參數(shù)名稱

是否必選

參數(shù)說明

column_name_list

查詢的列名。

table_name

table1_name

table2_name

table3_name

表名。

time_expr

閃回的時間戳,為時間字符串或者其他時間函數(shù),僅支持常量表達式,不能包含列名。示例如下:

  • 時間字符串:'2021-08-31 14:00:00'。

  • 時間函數(shù):FROM_UNIXTIMESTAMP(unix_timestamp('2024-01-01 00:00:00'))CONVERT(unix_timestamp('2024-01-01 00:00:00'), DATETIME)

alias

alias1

alias2

alias3

表的別名。

join_cond1

join_cond2

JOIN條件。

參數(shù)說明

PolarDB提供了以下參數(shù)來更精確地控制閃回功能:

參數(shù)名稱

數(shù)據(jù)類型

說明

loose_innodb_backquery_enable

BOOL

打開或者關(guān)閉閃回查詢功能。取值:

  • ON:打開

  • OFF:關(guān)閉(默認)

loose_innodb_backquery_window

ULONG

閃回查詢支持的時間長度。

  • 取值范圍:1~604800。

  • 單位:秒。

  • 默認值:86400。

loose_innodb_backquery_capacity_limit

ULONG

閃回查詢支持的undo日志容量。當undo日志容量大于或等于該值時,將會縮短閃回查詢支持的時間長度。

  • 取值范圍:100~200000000。

  • 單位:MB。

  • 默認值:100000000。

示例

以單表閃回為例。

  1. 準備測試數(shù)據(jù):

    2021-08-31 13:51創(chuàng)建products表,并插入數(shù)據(jù)。

    create table products (
           prod_id bigint(10) primary key NOT NULL,
           prod_name varchar(20) NOT NULL,
           cust_id bigint(10) NULL,
           createtime datetime NOT NULL DEFAULT NOW()
    );
    
    INSERT INTO  products(prod_id,prod_name,cust_id,createtime)
    values
    (101,'Book',1,NOW()),(102,'Apple',1,NOW()),(103,'Beef',2,NOW()),(104,'Bread',3,NOW()),(105,'Cheese',4,NOW());
    
                            
  2. 查詢products表中的數(shù)據(jù):

    SELECT * FROM products;
    +---------+-----------+---------+---------------------+
    | prod_id | prod_name | cust_id | createtime          |
    +---------+-----------+---------+---------------------+
    |     101 | Book      |       1 | 2021-08-31 13:51:22 |
    |     102 | Apple     |       1 | 2021-08-31 13:51:24 |
    |     103 | Beef      |       2 | 2021-08-31 13:51:26 |
    |     104 | Bread     |       3 | 2021-08-31 13:51:27 |
    |     105 | Cheese    |       4 | 2021-08-31 13:51:29 |
    +---------+-----------+---------+---------------------+
    5 rows in set (0.00 sec)
  3. 更新測試數(shù)據(jù):

    2021-08-31 14:18products表數(shù)據(jù)進行了更新。

    UPDATE products SET prod_id = 110, createtime = NOW() WHERE prod_name = "Book";
    UPDATE products SET prod_id = 119, createtime = NOW() WHERE prod_name = "Apple";
    
    SELECT * FROM products;
    +---------+-----------+---------+---------------------+
    | prod_id | prod_name | cust_id | createtime          |
    +---------+-----------+---------+---------------------+
    |     103 | Beef      |       2 | 2021-08-31 13:51:26 |
    |     104 | Bread     |       3 | 2021-08-31 13:51:27 |
    |     105 | Cheese    |       4 | 2021-08-31 13:51:29 |
    |     110 | Book      |       1 | 2021-08-31 14:18:21 |
    |     119 | Apple     |       1 | 2021-08-31 14:18:22 |
    +---------+-----------+---------+---------------------+
    5 rows in set (0.00 sec)
  4. 執(zhí)行閃回查詢:

    查看products表中2021-08-31 14:00:00這個歷史時間點的數(shù)據(jù)。

    SELECT * FROM products AS of TIMESTAMP '2021-08-31 14:00:00';
    +---------+-----------+---------+---------------------+
    | prod_id | prod_name | cust_id | createtime          |
    +---------+-----------+---------+---------------------+
    |     101 | Book      |       1 | 2021-08-31 13:51:22 |
    |     102 | Apple     |       1 | 2021-08-31 13:51:24 |
    |     103 | Beef      |       2 | 2021-08-31 13:51:26 |
    |     104 | Bread     |       3 | 2021-08-31 13:51:27 |
    |     105 | Cheese    |       4 | 2021-08-31 13:51:29 |
    +---------+-----------+---------+---------------------+
    5 rows in set (0.00 sec)