日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

数据量大和高并发解决方法

發(fā)布時間:2023/12/19 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数据量大和高并发解决方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

數據量 >10億

1?、表設計合理(遵循三范式) ?既然說到這里,我們簡單介紹下 三范式:

?

?2、分表技術(垂直分割、水平分割)3、建立索引 4、讀寫分離 5mysql配置優(yōu)化(調整最大并發(fā)量,定時對數據碎片整理,和數據備份,這里要用到定時器進行數據備份和碎片整理)

3、頁面靜態(tài)化

4、緩存技術(memcached)

第一范式(1NF)

(必須有主鍵,列不可分)

數據庫表中的任何字段都是單一屬性的,不可再分

?

create table aa(id int,NameAge varchar(100))?
insert aa values(1,''無限-女?'')?
沒有達到第一范式?

create table aa(id int,name varcahr(10),age char(2))?
insert aa values(1,''無限'',''女?'')?
達到第一范式

?

第二范式(2NF)

數據庫表中非關鍵字段對任一候選關鍵字段的?都?不存在部分函數依賴

(當一個表是復合主鍵時,非主鍵的字段不依賴于部分主鍵(即必須依賴于全部的主鍵字段))

?

create table sci(

?? sno int(32),cno int(32),grade int(32),credit int(32),

primary key sno,cno

)

課程(cno)1---1學分(credit)

學生(sno)n---n課程(cno)

學生+課程--->分數(grade)

sci

sno cno grade credit

1??? 1?? 60???? 80

2??? 1??? 90???? 80

3?? 1??? 70???? 80

.?? .?? .????? .

.?? .?? .???? .

.??? .?? .???? .

如此以來,學分被大量重復存儲,數據冗余

如要某課程學分,則要大量重復操作

如要加新課程,由于sno和cno共同做為主鍵,則在加入新課程時,必須有人選該課

如某學生某課程結業(yè),則該學生其它課程信息也同時被刪除了

總之

這種設計不太好吧,非關鍵字屬性credit僅函數依賴于cno,也就是credit部分依賴組合關鍵字(sno,cno)而不是完全依賴

解決

分成兩個關系模式 sc1(sno,cno,grade),c2(cno,credit)。新關系包括兩個關系模式,它們之間通過sc1中的外關鍵字cno相聯系,需要時再進行自然聯接,恢復了原來的關系

?

第三范式(3NF)

關系模式R(U,F)中的所有非主屬性對任何候選關鍵字都不存在傳遞依賴

?

例----S1(SNO,SNAME,DNO,?? DNAME, LOCATION)

????????? 學號 姓名?? 所在系 系名稱 系地址?
關鍵字SNO決定各個屬性。由于是單個關鍵字,沒有部分依賴的問題,肯定是2NF。但這關系肯定有大量的冗余,有關學生所在的幾個屬性DNO,DNAME,LOCATION將重復存儲,插入,刪除和修改時也將產生類似以上例的情況。?
原因:關系中存在傳遞依賴造成的。即SNO 1->1 DNO。 而DNO 1->n SNO卻不存在,?而DNO -> LOCATION存在, 因此關鍵遼 SNO 對 LOCATION 函數決定是通過傳遞依賴 SNO -> LOCATION 實現的。也就是說,SNO不直接決定非主屬性LOCATION。?
解決目地:每個關系模式中不能留有傳遞依賴。?
解決方法:分為兩個關系 S(SNO,SNAME,DNO),D(DNO,DNAME,LOCATION)?
注意:關系S中不能沒有外關鍵字DNO。否則兩個關系之間失去聯系

?

鮑依斯-科得范式(BCNF)

在3NF的基礎上,庫表中任何字段對任一候選關鍵字段的傳遞函數依賴都不存在

?

倉庫管理關系表為StorehouseManage(倉庫ID, 存儲物品ID, 管理員ID, 數量),且管理員1---1倉庫;倉庫1---n物品。這個數據庫表中存在如下決定關系:?
  (倉庫ID, 存儲物品ID) →(管理員ID, 數量)
(管理員ID, 存儲物品ID) → (倉庫ID, 數量)
所以,(倉庫ID, 存儲物品ID)和(管理員ID, 存儲物品ID)都是StorehouseManage的候選關鍵字,表中的唯一非關鍵字段為數量,它是符合第三范式的。但是,由于存在如下決定關系:
(倉庫ID) → (管理員ID)
(管理員ID) → (倉庫ID)
即存在關鍵字段決定關鍵字段的情況,所以其不符合BCNF范式

解決:

把倉庫管理關系表分解為二個關系表:?
  倉庫管理:StorehouseManage(倉庫ID, 管理員ID)
倉庫:Storehouse(倉庫ID, 存儲物品ID, 數量)。

?

轉載于:https://www.cnblogs.com/OnlyLoveCx/p/4904887.html

總結

以上是生活随笔為你收集整理的数据量大和高并发解决方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。