那么,你怎么回答“怎么保證數(shù)據(jù)完整?”的
虎撲面試1.現(xiàn)在10庫100表,不需要這些了,怎么合并,或者不夠用,怎么擴(kuò)容 2.主從同步的幾種方式?如何保證一致?延遲怎么辦? 我說thread并行復(fù)制,他問,怎么保證數(shù)據(jù)完整? ...
有一個(gè)人總結(jié)的好:
1:為啥刪除了表的一半數(shù)8據(jù),表文文件大小沒變化?
因?yàn)閐elete 命令其實(shí)只是把記錄的位置,或者數(shù)據(jù)頁標(biāo)記為了“可復(fù)用”,但磁盤文件的大小是不會變的。也可以認(rèn)為是一種邏輯刪除,所以物理空間沒有實(shí)際釋放,只是標(biāo)記為可復(fù)用,表文件的大小當(dāng)然是不變的啦
2:表的數(shù)據(jù)信息存在哪里?
表數(shù)據(jù)信息可能較小也可能巨大無比,她可以存儲在共享表空間里,也可以單獨(dú)存儲在一個(gè)以.ibd為后綴的文件里,由參數(shù)innodb_file_per_table來控制,老師建議總是作為一個(gè)單獨(dú)的文件來存儲,這樣非常容易管理,并且在不需要的時(shí)候,使用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(默認(rèn))等文件
4:如何才能刪除表數(shù)據(jù)后,表文件大小就變?。?br>重建表,消除表因?yàn)檫M(jìn)行大量的增刪改操作而產(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)生空洞修改操作,有時(shí)是一種先刪后插的動作也可能產(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...
感謝這個(gè)命令: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)(占用空間?。┓畔到y(tǒng)數(shù)據(jù)表。 一、為什么刪除表數(shù)據(jù),表空間不能回收? 1.參數(shù)i...
樂夏里最愛的就是刺猬,沒有之一!
做一個(gè)搖滾的夢——談?wù)劇稑逢?duì)的夏天》中的刺猬樂隊(duì)《樂隊(duì)的夏天》在開播的時(shí)候,造勢特別大,幾乎每天都能看到這檔節(jié)目的名字掛在微博熱搜上。 我第一次了解到《樂隊(duì)的夏天》這個(gè)節(jié)目,就是因?yàn)榱?xí)慣性地刷了一下微博,看到了斯斯與帆的表...
最后的權(quán)重隨機(jī)“快速方便調(diào)用量小”,官方文檔里說“性能較差小”,如何理解?
(5)SOFARPC 路由實(shí)現(xiàn)剖析RPC 框架本身的服務(wù)發(fā)現(xiàn)和路由尋址(接入注冊中心來完成),目標(biāo)地址問題,對于客戶端透明: 解決問題:客戶端只需知道服務(wù)端的接口和方法,不需知道服務(wù)具體由哪些 IP 提供 解...
“把身體前傾,即重心往前移” 這樣長期會傷到膝蓋
運(yùn)動第70天,拿下第二個(gè)半馬今天早上跑了第二個(gè)半馬,用時(shí)1小時(shí)45分,比起兩周前的半馬快了10分鐘完成。衣服被汗水浸透,心里卻滿滿的幸福。 想想70天前,自己還是一個(gè)跑渣,跑幾百米都覺得累,那時(shí)候跑步完...
最后的總結(jié),為何要用4位表示數(shù)字呢?最短的編碼也是8位的一個(gè)字節(jié)長度吧
-5+4 = [10000101]原 + [00000100]原 = [11111011]補(bǔ) + [00000100]補(bǔ) = [11111111]補(bǔ)=[10000001]原 = -1 (真值)
11 | 二進(jìn)制編碼:“手持兩把錕斤拷,口中疾呼燙燙燙”?程序 = 算法 + 數(shù)據(jù)結(jié)構(gòu)。對應(yīng)硬件,算法就是計(jì)算機(jī)指令,數(shù)據(jù)結(jié)構(gòu)就對應(yīng)二進(jìn)制數(shù)據(jù)。 計(jì)算機(jī)都是用 0 和 1 組成的二進(jìn)制,表示所有信息。指令用到的機(jī)器碼也是二進(jìn)制表示;...
概要:5 Happens-before、6有序性 阻止(偽)編譯器認(rèn)為的無法“被代碼本身”改變代碼(變量/對象)進(jìn)行優(yōu)化。 JDK1.2 前,Java內(nèi)存模型實(shí)現(xiàn)總是從主存(...
關(guān)于用法,是否可以這樣總結(jié):
>volatile用于一個(gè)線程寫,其它線程讀的情況,而如果有多個(gè)線程同時(shí)寫,還要保持原子性,就使用synchronized
其實(shí)在項(xiàng)目中,后者是居多的,比如并發(fā)請求的時(shí)候,操作是一樣的,這也是為什么用synchronized情況更多的原因。
那么問題來了,如果是微服務(wù)架構(gòu),如果使用synchronized呢?畢竟請求可能會分發(fā)到不同的服務(wù)器上,是不是一定要共同的DB或者緩存來控制呢?
(三)volatile關(guān)鍵字(1)概要:5 Happens-before、6有序性 阻止(偽)編譯器認(rèn)為的無法“被代碼本身”改變代碼(變量/對象)進(jìn)行優(yōu)化。 JDK1.2 前,Java內(nèi)存模型實(shí)現(xiàn)總是從主存(...
這個(gè)國產(chǎn)的APM看著不錯(cuò),有空嘗試下
SkyWalkingwebapp.yml文件編輯用戶名密碼 概括(可看到):應(yīng)用數(shù)、Service監(jiān)控、慢服務(wù)、每分鐘請求、吞吐量 拓?fù)鋱D、TraceId、每個(gè)方法哪個(gè)階...
webapp.yml文件編輯用戶名密碼 概括(可看到):應(yīng)用數(shù)、Service監(jiān)控、慢服務(wù)、每分鐘請求、吞吐量 拓?fù)鋱D、TraceId、每個(gè)方法哪個(gè)階...
bitmap方法不錯(cuò)
【面試現(xiàn)場】(2)如何判斷一個(gè)數(shù)是否在40億個(gè)整數(shù)中?題目:我有40億個(gè)整數(shù),再給一個(gè)新的整數(shù),我需要判斷新的整數(shù)是否在40億個(gè)整數(shù)中,你會怎么做? 為什么我說分8次加載數(shù)據(jù)太慢了呢? 從磁盤加載數(shù)據(jù)是磁盤io操作,是非常慢的,...
簽名是不是寫錯(cuò)了“以上內(nèi)容,全部抄襲。未得到任何授權(quán),有質(zhì)疑,立刻刪除。”
(一)電子錢包充值N元可以無限購買價(jià)值N元的商品而余額依然是N元一、現(xiàn)象 1)錢包余額1分錢時(shí),買一件一分錢商品,小程序訂單顯示電子錢包支付了一分錢,但沒有看到微信支付信息,零錢也沒扣。相當(dāng)于免費(fèi)領(lǐng) 2)余額7分錢時(shí),買一件一分錢商品,零...
打開charles 菜單 Tools中的Mapping Romote 選項(xiàng): 11.xxx.130.3 xxxxxxxxxx.com 在手機(jī)連wifi(內(nèi)部網(wǎng))的detail...