iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 29
0

觀察一下,有注意到method是否結尾有Release區別,有Release的用法是說基本上組出來的statement都可以重複利用,如果使用了Release的method,則這個statement就會被清除,不能再二次使用。

這個與前面說到的prepare statement,SCYLLA會把語法做MD5紀錄到快取的部分,是獨立不同的部分,不要混在一起了。

可以想做程式每次語法的組織,其實都需要效能上的消耗,而我們query大多只是參數上的不同,所以套件幫忙做了自己的快取。

qb.Exec()
qb.Select()
...
qb.ExecRelease()
qb.SelectRelease()
...

gocqlx額外提供的東西不算多,query builder 組裝完statement之後,除了可以使用BindStruct()之外,還有一個BindMap()

再來就是使用LWT的話,使用的method會與一般的method有所區隔,如以下所列:

ExecCAS()
ExecCASRelease()
GetCAS()
GetCASRelease()

如果說gocqlx稍微應用得比較順手,那麼回過頭來,gocql也可以多了解一下,因為gocql與gocqlx是搭配使用,並無法單獨只使用gocqlx。

要設定一些比較重要的參數,譬如說cluster連線的timeout,pagesize,連線設定等等,必須要透過gocql做設定。

gocql其實是可以單獨使用的,語法都可以應付各種需求,不過query方面,SCYLLA官方是主推gocqlx,那麼就小小地支持一下,在本系列多稍作著墨。

在gocql的readme介紹,也詳細列出目前有相關應用套件,其中也可以找到gocqlx的連結。



上一篇
Day28. 程式使用 gocqlx(1)
下一篇
Day30. 總結
系列文
scylla 從零開始攻略30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言