gbase8a rowid功能測試

2021-10-06 10:57:22 字數 2891 閱讀 6986

需要將gbase8a中的業務資料遷移到mysql5.6中,通過kettle遷移特別慢,通過datax遷移資料是kettle的三倍。

基於gbase8a 業務表中的rowid切片,實現資料的遷移,當然也可以使用分頁,用rowid還可以輕鬆實現增量資料的遷移 (業務表無自增id和自增時間戳的情況),這裡只記錄一下rowd功能測試

gbase8a 8.6.2.43-r7-free.110605

mysql5.7.29

datax同步指令碼在部落格裡有

rowid是乙個整型資料,預設值是從0開始的,插入一條記錄,自動增長1

gbase> select *,rowid from test;

±-----±-----±------+

| name | info | rowid |

±-----±-----±------+

| a | b | 0 |

| b | b | 1 |

| c | c | 2 |

| d | d | 3 |

| e | e | 4 |

±-----±-----±------+

刪除中間rowid=1的記錄,再插入一條記錄,看看rowid是否能被重用

gbase>delete from test where name=『b』;

gbase> select *,rowid from test;

±-----±-----±------+

| name | info | rowid |

±-----±-----±------+

| a | b | 0 |

| c | c | 2 |

| d | d | 3 |

| e | e | 4 |

插入一條新記錄,檢視rowid=1是否被重用,還是重新分配

gbase> insert into test values(『f』,『f』);

gbase> select *,rowid from test;

±-----±-----±------+

| name | info | rowid |

±-----±-----±------+

| a | b | 0 |

| c | c | 2 |

| d | d | 3 |

| e | e | 4 |

| f | f | 5 |

±-----±-----±------+

結果:rowid沒有並重要,重新分配的

那麼刪除最後一條記錄呢

gbase> delete from test where name=『f』;

gbase> select *,rowid from test;

±-----±-----±------+

| name | info | rowid |

±-----±-----±------+

| a | b | 0 |

| c | c | 2 |

| d | d | 3 |

| e | e | 4 |

±-----±-----±------+

gbase> exit

bye這裡先把資料庫重新啟動一下

[gbase@lineqi ~]$ gbase.server stop

shutting down gbase… success!

[gbase@lineqi ~]$ gbase.server start

starting gbase. success!

[gbase@lineqi ~]$ gbase

gbase> insert into test values(『h』,『h』);

gbase> select *,rowid from test;

±-----±-----±------+

| name | info | rowid |

±-----±-----±------+

| a | b | 0 |

| c | c | 2 |

| d | d | 3 |

| e | e | 4 |

| h | h | 6 |

*結果:rowid並不是延用5,而重新分配的6

truncate table後,再重新插入呢

gbase> truncate table test;

query ok, 5 rows affected (elapsed: 00:00:00.02)

gbase> insert into test values(『h』,『h』);

gbase> select *,rowid from test;

±-----±-----±------+

| name | info | rowid |

±-----±-----±------+

| h | h | 0 |

±-----±-----±------+

重新從0開始計算

1、rowid是乙個整型字段,起始值為0,每插入一條記錄,自動加1

2、刪除表中的記錄,對應的rowid不會被新記錄重用

3、基於rowid切片,實現資料遷移

4、基於rowid,可以輕鬆實現資料的增量遷移

5、truncate table後,新插入的記錄,從0開始,這點與mysql是一樣的

然而現場的情況,基於rowid實現起來還是有出入

1、rowid最大值取值是多少?從**可以查詢到?

2、gbase8a每個版本的rowid取值都是一樣的

GBase8g向GBase8s資料庫進行遷移

gbase8g向gbase8s資料庫進行遷移背景 因業務需求,需要將以往專案使用的gbase8g資料庫中的資料,遷移到gbase8s資料庫中。在此記錄遷移遇到的一些問題和解決方法。目標將gbase8g的資料成功遷移到gbase8t後,原有程式功能可以正常執行 問題列表 自定義排序 1 問題描述 由於...

GBase8s MyBatis 操作示例

gbase8s spring boot mybatis 操作示例 本文將建立乙個簡單的 spring boot 專案結構,並演示如何使用 mybatis 進行gbase 8s 資料庫的資料 處理工作 插入,選擇,更新和刪除 以及分頁顯示。mybatis xml方式 本文我們會使用 mybatis s...

GBase8a匯出和載入資料步驟

一 ssh工具連線伺服器 二 切換gbase使用者 執行su gbase命令 三 執行gccli命令,進入sql命令 四 執行sql語句,把需要匯出的表匯出到指定目錄 select from mid.into outfile opt gbase dispatch server txt fieldst...