mysql tidb 刪除延遲 tidb使用坑記錄

2021-10-18 09:51:54 字數 1041 閱讀 3114

1、對硬碟要求很高,沒上ssd硬碟的不建議使用

2、不支援分割槽,刪除資料是個大坑。

解決方案:set @@session.tidb_batch_delete=1;

3、插入資料太大也會報錯

解決方案:set @@session.tidb_batch_insert=1;

4、刪除表資料時不支援別名

delete from 表名 表別名 where 表別名.col = '1'  會報錯

5、記憶體使用有問題,go語言導致不知道**機制什麼時候運作。記憶體使用過多會導致tidb當機(這點完全不像mysql)

測試情況是,32g記憶體,在10分鐘後才**一半。

6、資料寫入的時候,tidb壓力很大, tikv的cpu也占用很高

7、不支援gbk

8、不支援儲存過程

9、列數支援太少,只支援100列,和oralce/mysql的1000列少太多(oracle 最大列數為 1000;mysql對於每個表具有4096個列的硬限制, 其中innodb每個表的限制為1017列, 最大行大小限制為65,535位元組)

外面文章的一些建議

3tikv+3pd+2tidb

在有了 tispark 之後,我們便利用 tispark 將中間表快取為 spark 的記憶體表,只需要將最後的資料落地回 tidb,再執行 merge 操作即可,這樣省掉了很多中間資料的落地,大大節省了很多指令碼執行的時間

在查詢速度解決之後,我們發現指令碼中會有很多針對中間表 update 和 delete 的語句。目前 tispark 暫時不支援 update 和 delete 的操作(和 tispark 作者溝通,後續會考慮支援這兩個操作),

最後,關於實時的排程工具,目前我們是和離線排程一起進行排程,這也帶來了一些問題,每次指令碼都會初始化一些 spark 引數等,這也相當耗時。在未來,我們打算採用 spark streaming 作為排程工具,

每次執行完成之後記錄時間戳,spark streaming 只需監控時間戳變化即可,能夠避免多次初始化的耗時,通過 spark 監控,我們也能夠清楚的看到任務的延遲和一些狀態,這一部分將在未來進行測試。

TiDB安裝與使用 踩坑

1 使用binlog同步到下游資料庫的時候,賬號資訊不會同步 2 使用binlog同步同步到下游mysql的時候,大表加索引會導致同步停止,drainer停止 tidb傳送建立index的時候,由於資料量過大,mysql並沒有立即執行完成,tidb監控長時間沒有返回就結果,就執行回滾並且重新發一條建...

MongoDB修改,刪除文件踩坑記

db.集合名稱.update 條件,修改後的資料 修改 id為1的記錄,點讚數為1000,輸入以下語句 執行後發現,這條文件除了thumbup欄位其它欄位都不見了。為了解決這個問題,我們需要使用修改器 set來實現,命令如下 db.comment.update db.集合名稱.remove 條件 以...

記使用阻塞佇列的坑

由於專案需求,使用多執行緒處理資料,期間資料量後期可能達到百萬甚至千萬級別,所以考慮使用阻塞佇列儲存,所有資料 使用的是 linkedblockingqueue 佇列,大小設定為 10000 每次資料庫中只取號碼list 每個list大小 500 所以可以支撐資料量是 500w 下面的 是沒有問題的...