分享Mycat實戰使用過程遇到的問題

2021-09-09 05:20:37 字數 2612 閱讀 5817

1、關於讀寫分離問題,**中有start transaction的時候,只要有讀寫的操作都訪問的是主庫,如下示例:

start transaction;

update torder set pay_amount = 13 where member_id = 9 and id = 『611000000009』;

select pay_amount from torder where member_id = 9 and id = 『611000000009』;

rollback;start transaction;

update torder set pay_amount = 13 where member_id = 9 and id = 『611000000009』;

select pay_amount from torder where member_id = 9 and id = 『611000000009』;

rollback;

2、select 中distinct不支援對"" as goodscount的查詢,如下示例:

4、報錯:where條件中使用or導致

in subquery,the or condition is not supported)

5、mycat配置sql執行超時問題,mysql引數配置 單位秒

6、分片字段不能被更新,所以如果程式端有對分片字段更新的操作,需要修改

7、不支援 insert into 中不包括欄位名的 sql語句,如果程式端涉及的sql沒有不包含字段,需要修改

8、insert into x select from y 的sql語句不被支援

9、對於跨庫的查詢需要通過catlet實現,並且不支援超過兩張表的查詢,具體語法如下

/*!mycat:catlet=io.mycat.catlets.sharejoin */select * from torder_test a,torder_t c where c.member_id=a.member_id;

10、mycat目前支援2個表join,如果有超過兩張表的查詢,**需要修改

11、查詢最好能夠按照分片字段,否則查詢效率不是太好

12、關於order by排序問題

order by 後的排序字段必須是select的一部分,全域性表的時候除外

全域性表

13、關於插入欄位不包含分片字段

14、關於多表更新:

多表更新不支援 update a, b set a.nation=』china』, b.pwd=』123456』 where a.id=b.id

但支援子查詢方式 update a set a.nation=』china』 where id in (select id from b);

15、關於批量insert問題

多行插入 insert into tab_a(c1,c2) values(v1,v2),(v11,v21)… ##針對的是er分表的從表無法批量插入

複雜刪除(mycat1.6.5支援) delete a from a join b on a.id=b.id; 支援子查詢方式delete from a where a.id in (select id from b), 但表不能起別名

16、mysql 開啟gtid不被允許執行的sql語句

Ida使用過程遇到的問題

1 如果出現 bogus or irresponsive remote server錯誤可能是adb斷開了或者在adb shell中執行setenforce 0關閉selinux 安全機制 需要root許可權 3 出現bind address already in use的解決方法 在adb中執行 ...

tensorflow使用過程遇到的問題

1.py2和py3共存方法 一定要使用這種共存方法,還有一種共存方法是安裝完python3之後,重新命名python.exe,這樣會導致jupyter無法正常工作。2.安裝tensorflow,使用如下命令 pip install ignore installed upgrade tensorflo...

Spring data Jpa使用過程中遇到的坑

一定要注意如果我們在實體類中沒有配置資料表的預設值,那麼在存入和取出的時候應該設定。否則在取出的時候就會出現問題。如何通過一方獲取到多方實體 jsp中 jsp資料夾與上面servlet對映名最好不要一致,這樣會出問題 注意!乙個實體類的表id名字請設定為id,保證不出錯。問題分析 解決方法 其實一般...