第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定

mysql-count(14)

標(biāo)簽:
Java MySQL

1,不同的引擎有不同的实现方式。myisam直接存在磁盘上,可以直接读取。innodb需要一行行读,再进行累计。

2,innodb因为mvcc(多版本并发控制)的原因,同一时刻不同回话查询的数据可能不一致,

3,show table status可以显示表行数,但是不准确。

4,所以如何计数呢:一是使用缓存,插入一行数据,key就加一,删除就减一,但是redis可能因为重启导致存在丢失更新情况,但即使redis正常工作也会出现数据不准确的问题:因为redis跟db无法支持分布式事务,所以在写的两次操作的中间环节进来一个读线程,无论先读db还是先读redis都可能会出现不准确的问题。

                                 二是使用数据库另一张表进行计数。依靠的是事务之前的隔离性。更新记录数与添加新纪录在一个事务中,如果未提交事务,其中的操作对外面的事务是不可见的。注意代码中的顺序,要先添加新记录,再更新记录数,因为更新记录数会触发行锁,只有在事务提交的时候才会释放行锁,如果放在程序最后,会大大提高并发度。

5,count的几种方式的效率比较。count(*)~=count(1)>count(主键)>count(某一个字段)

點擊查看更多內(nèi)容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優(yōu)質(zhì)文章

正在加載中
JAVA開發(fā)工程師
手記
粉絲
11
獲贊與收藏
107

關(guān)注作者,訂閱最新文章

閱讀免費教程

  • 推薦
  • 評論
  • 收藏
  • 共同學(xué)習(xí),寫下你的評論
感謝您的支持,我會繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學(xué)

大額優(yōu)惠券免費領(lǐng)

立即參與 放棄機會
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號

舉報

0/150
提交
取消