那么纽帖,你怎么回答“怎么保證數(shù)據(jù)完整?”的
虎撲面試1.現(xiàn)在10庫100表,不需要這些了约谈,怎么合并笔宿,或者不夠用,怎么擴容 2.主從同步的幾種方式棱诱?如何保證一致泼橘?延遲怎么辦? 我說thread并行復(fù)制迈勋,他問炬灭,怎么保證數(shù)據(jù)完整? ...
有一個人總結(jié)的好:
1:為啥刪除了表的一半數(shù)8據(jù),表文文件大小沒變化较鼓?
因為delete 命令其實只是把記錄的位置椎木,或者數(shù)據(jù)頁標(biāo)記為了“可復(fù)用”,但磁盤文件的大小是不會變的博烂。也可以認為是一種邏輯刪除香椎,所以物理空間沒有實際釋放,只是標(biāo)記為可復(fù)用禽篱,表文件的大小當(dāng)然是不變的啦
2:表的數(shù)據(jù)信息存在哪里畜伐?
表數(shù)據(jù)信息可能較小也可能巨大無比,她可以存儲在共享表空間里躺率,也可以單獨存儲在一個以.ibd為后綴的文件里烤礁,由參數(shù)innodb_file_per_table來控制讼积,老師建議總是作為一個單獨的文件來存儲,這樣非常容易管理脚仔,并且在不需要的時候勤众,使用drop table命令也能直接把對應(yīng)的文件刪除,如果存儲在共享空間之中即使表刪除了空間也不會釋放鲤脏。
3:表的結(jié)構(gòu)信息存在哪里们颜?
首先,表結(jié)構(gòu)定義占有的存儲空間比較小猎醇,在MySQL8.0之前窥突,表結(jié)構(gòu)的定義信息存在以.frm為后綴的文件里,在MySQL8.0之后硫嘶,則允許把表結(jié)構(gòu)的定義信息存在系統(tǒng)數(shù)據(jù)表之中阻问。系統(tǒng)數(shù)據(jù)表,主要用于存儲MySQL的系統(tǒng)數(shù)據(jù)沦疾,比如:數(shù)據(jù)字典称近、undo log(默認)等文件
4:如何才能刪除表數(shù)據(jù)后,表文件大小就變邢刨秆?
重建表,消除表因為進行大量的增刪改操作而產(chǎn)生的空洞忆畅,使用如下命令:
alter table t engine=InnoDB
optimize table t( 等于 recreate+analyze)衡未。
truntace table t (等于drop+create)
5:空洞是啥?咋產(chǎn)生的家凯?
空洞就是那些被標(biāo)記可復(fù)用但是還沒被使用的存儲空間缓醋。使用delete命令刪除數(shù)據(jù)會產(chǎn)生空洞,標(biāo)記為可復(fù)用绊诲。插入新的數(shù)據(jù)可能引起頁分裂改衩,也可能產(chǎn)生空洞修改操作,有時是一種先刪后插的動作也可能產(chǎn)生空洞
13 | 為什么表數(shù)據(jù)刪掉一半驯镊,表文件大小不變葫督?InnoDB 表包含:表結(jié)構(gòu)和數(shù)據(jù)。8.0 前板惑,表結(jié)構(gòu)存在.frm 文件橄镜。8.0 版本,表結(jié)構(gòu)(占用空間蟹氤恕)放系統(tǒng)數(shù)據(jù)表洽胶。 一、為什么刪除表數(shù)據(jù),表空間不能回收姊氓? 1.參數(shù)i...
感謝這個命令:alter table t engine = InnoDB
13 | 為什么表數(shù)據(jù)刪掉一半丐怯,表文件大小不變?InnoDB 表包含:表結(jié)構(gòu)和數(shù)據(jù)翔横。8.0 前读跷,表結(jié)構(gòu)存在.frm 文件。8.0 版本禾唁,表結(jié)構(gòu)(占用空間行Ю馈)放系統(tǒng)數(shù)據(jù)表。 一荡短、為什么刪除表數(shù)據(jù)丐枉,表空間不能回收? 1.參數(shù)i...
最后的權(quán)重隨機“快速方便調(diào)用量小”抽兆,官方文檔里說“性能較差小”识补,如何理解族淮?
(5)SOFARPC 路由實現(xiàn)剖析RPC 框架本身的服務(wù)發(fā)現(xiàn)和路由尋址(接入注冊中心來完成),目標(biāo)地址問題凭涂,對于客戶端透明: 解決問題:客戶端只需知道服務(wù)端的接口和方法祝辣,不需知道服務(wù)具體由哪些 IP 提供 解...
“把身體前傾,即重心往前移” 這樣長期會傷到膝蓋
運動第70天切油,拿下第二個半馬今天早上跑了第二個半馬蝙斜,用時1小時45分,比起兩周前的半馬快了10分鐘完成澎胡。衣服被汗水浸透孕荠,心里卻滿滿的幸福。 想想70天前攻谁,自己還是一個跑渣稚伍,跑幾百米都覺得累,那時候跑步完...
最后的總結(jié),為何要用4位表示數(shù)字呢受楼?最短的編碼也是8位的一個字節(jié)長度吧
-5+4 = [10000101]原 + [00000100]原 = [11111011]補 + [00000100]補 = [11111111]補=[10000001]原 = -1 (真值)
11 | 二進制編碼:“手持兩把錕斤拷垦搬,口中疾呼燙燙燙”呼寸?程序 = 算法 + 數(shù)據(jù)結(jié)構(gòu)。對應(yīng)硬件猴贰,算法就是計算機指令对雪,數(shù)據(jù)結(jié)構(gòu)就對應(yīng)二進制數(shù)據(jù)。 計算機都是用 0 和 1 組成的二進制糟趾,表示所有信息慌植。指令用到的機器碼也是二進制表示;...
概要:5 Happens-before义郑、6有序性 阻止(偽)編譯器認為的無法“被代碼本身”改變代碼(變量/對象)進行優(yōu)化蝶柿。 JDK1.2 前,Java內(nèi)存模型實現(xiàn)總是從主存(...
關(guān)于用法非驮,是否可以這樣總結(jié):
>volatile用于一個線程寫交汤,其它線程讀的情況,而如果有多個線程同時寫,還要保持原子性劫笙,就使用synchronized
其實在項目中芙扎,后者是居多的,比如并發(fā)請求的時候填大,操作是一樣的戒洼,這也是為什么用synchronized情況更多的原因。
那么問題來了允华,如果是微服務(wù)架構(gòu)圈浇,如果使用synchronized呢?畢竟請求可能會分發(fā)到不同的服務(wù)器上靴寂,是不是一定要共同的DB或者緩存來控制呢磷蜀?
(三)volatile關(guān)鍵字(1)概要:5 Happens-before、6有序性 阻止(偽)編譯器認為的無法“被代碼本身”改變代碼(變量/對象)進行優(yōu)化百炬。 JDK1.2 前褐隆,Java內(nèi)存模型實現(xiàn)總是從主存(...
這個國產(chǎn)的APM看著不錯,有空嘗試下
SkyWalkingwebapp.yml文件編輯用戶名密碼 概括(可看到):應(yīng)用數(shù)剖踊、Service監(jiān)控庶弃、慢服務(wù)、每分鐘請求德澈、吞吐量 拓撲圖歇攻、TraceId、每個方法哪個階...
webapp.yml文件編輯用戶名密碼 概括(可看到):應(yīng)用數(shù)圃验、Service監(jiān)控掉伏、慢服務(wù)、每分鐘請求、吞吐量 拓撲圖斧散、TraceId供常、每個方法哪個階...
bitmap方法不錯
【面試現(xiàn)場】(2)如何判斷一個數(shù)是否在40億個整數(shù)中?題目:我有40億個整數(shù)鸡捐,再給一個新的整數(shù)栈暇,我需要判斷新的整數(shù)是否在40億個整數(shù)中,你會怎么做箍镜? 為什么我說分8次加載數(shù)據(jù)太慢了呢源祈? 從磁盤加載數(shù)據(jù)是磁盤io操作,是非常慢的色迂,...
簽名是不是寫錯了“以上內(nèi)容香缺,全部抄襲。未得到任何授權(quán)歇僧,有質(zhì)疑图张,立刻刪除≌┖罚”
(一)電子錢包充值N元可以無限購買價值N元的商品而余額依然是N元一祸轮、現(xiàn)象 1)錢包余額1分錢時,買一件一分錢商品侥钳,小程序訂單顯示電子錢包支付了一分錢适袜,但沒有看到微信支付信息,零錢也沒扣舷夺。相當(dāng)于免費領(lǐng) 2)余額7分錢時苦酱,買一件一分錢商品,零...