国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

SQL筆記 -- 數(shù)據(jù)庫結構優(yōu)化

這篇具有很好參考價值的文章主要介紹了SQL筆記 -- 數(shù)據(jù)庫結構優(yōu)化。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

1. 拆分表(冷熱數(shù)據(jù)分離)

不常用的數(shù)據(jù)為冷數(shù)據(jù),反之則為熱數(shù)據(jù)。如果一個表中的數(shù)據(jù)存在明顯的使用頻率差異,那么可以將冷熱數(shù)據(jù)分離。通過這種分解可以提高表的查詢效率。對于字段很多且有些字段使用不頻繁的表,可以通過這種分解的方式來優(yōu)化數(shù)據(jù)庫的性能。

例如: 會員members表存儲會員登錄認證信息,該表中有很多字段,如id、姓名、密碼、地址、電 話、個人描述字段。其中地址、電話、個人描述等字段并不常用,可以將這些不常用的字段分解出另一 個表。

2. 增加中間表

假如當前有兩個表,學生信息表包含id、學號、姓名、年齡和班號,班級表包含id、班級名、地址、班長。

若現(xiàn)在有一個模塊需要經(jīng)常查詢帶有學生名稱(name)、學生所在班級名稱(className)、學生班級班 長(monitor)的學生信息。根據(jù)這種情況可以創(chuàng)建一個 temp_student 表。temp_student表中存儲學生名稱(stu_name)、學生所在班級名稱(className)和學生班級班長(monitor)信息。以后,

可以直接從temp_student表中查詢學生名稱、班級名稱和班級班長,而不用每次都進行聯(lián)合查 詢。這樣可以提高數(shù)據(jù)庫的查詢速度。

3. 增加冗余字段

設計數(shù)據(jù)庫表時應盡量遵循范式理論的規(guī)約,盡可能減少冗余字段,讓數(shù)據(jù)庫設計看起來精致、優(yōu)雅。 但是,合理地加入冗余字段可以提高查詢速度。

表的規(guī)范化程度越高,表與表之間的關系就越多,需要連接查詢的情況也就越多。尤其在數(shù)據(jù)量大,而 且需要頻繁進行連接的時候,為了提升效率,我們也可以考慮增加冗余字段來減少連接。

4. 優(yōu)化數(shù)據(jù)類型

(1)對整數(shù)類型數(shù)據(jù)進行優(yōu)化。

遇到整數(shù)類型的字段可以用 INT 型 。這樣做的理由是,INT 型數(shù)據(jù)有足夠大的取值范圍,不用擔心數(shù) 據(jù)超出取值范圍的問題。剛開始做項目的時候,首先要保證系統(tǒng)的穩(wěn)定性,這樣設計字段類型是可以 的。但在數(shù)據(jù)量很大的時候,數(shù)據(jù)類型的定義,在很大程度上會影響到系統(tǒng)整體的執(zhí)行效率。

對于 非負型 的數(shù)據(jù)(如自增ID、整型IP)來說,要優(yōu)先使用無符號整型 UNSIGNED 來存儲。因為無符號 相對于有符號,同樣的字節(jié)數(shù),存儲的數(shù)值范圍更大。如tinyint有符號為-128-127,無符號為0-255,多出一倍的存儲空間。

(2)既可以使用文本類型也可以使用整數(shù)類型的字段,要選擇使用整數(shù)類型。

跟文本類型數(shù)據(jù)相比,大整數(shù)往往占用更少的存儲空間 ,因此,在存取和比對的時候,可以占用更少的 內存空間。所以,在二者皆可用的情況下,盡量使用整數(shù)類型,這樣可以提高查詢的效率。如:將IP地 址轉換成整型數(shù)據(jù)。

(3)避免使用TEXT、BLOB數(shù)據(jù)類型

(4)避免使用ENUM類型

修改ENUM值需要使用ALTER語句。

ENUM類型的ORDER BY 操作效率低,需要額外操作。使用TINYINT來代替ENUM類型。

(5)使用TIMESTAMP存儲時間

TIMESTAMP存儲的時間范圍1970-01-01 00:00:01 ~ 2038-01_19-03:14:07。TIMESTAMP使用4字節(jié),DATETIME使用8個字節(jié),同時TIMESTAMP具有自動賦值以及自動更新的特性。

(6)用DECIMAL代替FLOAT和DOUBLE存儲精確浮點數(shù)

  1. 非精準浮點: float, double
  2. 精準浮點:decimal

Decimal類型為精準浮點數(shù),在計算時不會丟失精度,尤其是財務相關的金融類數(shù)據(jù)。占用空間由定義的寬度決定,每4個字節(jié)可以存儲9位數(shù)字,并且小數(shù)點要占用一個字節(jié)??捎糜诖鎯Ρ萣igint更大的整型數(shù)據(jù)。

總之,遇到數(shù)據(jù)量大的項目時,一定要在充分了解業(yè)務需求的前提下,合理優(yōu)化數(shù)據(jù)類型,這樣才能充 分發(fā)揮資源的效率,使系統(tǒng)達到最優(yōu)。

5. 優(yōu)化插入記錄的速度

插入記錄時,影響插入速度的主要是索引、唯一性校驗、一次插入記錄條數(shù)等。根據(jù)這些情況可以分別進行優(yōu)化。

(1)MyISAM引擎的表:

① 禁用索引

② 禁用唯一性檢查

③ 使用批量插入

插入多條記錄時,可以使用一條INSERT語句插入一條數(shù)據(jù),也可以使用一條INSERT語句插入多條數(shù)據(jù)。插入一條記錄的INSERT語句情形如下:

insert into student values(1,'zhangsan',18,1);
insert into student values(2,'lisi',17,1);
insert into student values(3,'wangwu',17,1);
insert into student values(4,'zhaoliu',19,1);

使用一條INSERT語句插入多條記錄的情形如下:

insert into student values
(1,'zhangsan',18,1),
(2,'lisi',17,1),
(3,'wangwu',17,1),
(4,'zhaoliu',19,1);

第2種情形的插入速度要比第1種情形快。

④ 使用LOAD DATA INFILE 批量導入

當需要批量導入數(shù)據(jù)時,如果能用LOAD DATA INFILE語句,就盡量使用。因為LOAD DATA INFILE語句導入數(shù)據(jù)的速度比INSERT語句塊。

(2) InnoDB引擎的表:

① 禁用唯一性檢查

插入數(shù)據(jù)之前執(zhí)行set unique_checks=0來禁止對唯一索引的檢查,數(shù)據(jù)導入完成之后再運行set unique_check=1。這個和MyISAM引擎的使用方法一樣。

② 禁用外鍵檢查

③ 禁止自動提交文章來源地址http://www.zghlxwxcb.cn/news/detail-816158.html

6. 使用非空約束

到了這里,關于SQL筆記 -- 數(shù)據(jù)庫結構優(yōu)化的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 數(shù)據(jù)庫優(yōu)化:探索 SQL 中的索引

    數(shù)據(jù)庫優(yōu)化:探索 SQL 中的索引

    推薦:使用 NSDT場景編輯器 助你快速搭建可編輯的3D應用場景 在一本書中搜索特定主題時,我們將首先訪問索引頁面(該頁面位于該書的開頭),并找到包含我們感興趣的主題的頁碼。現(xiàn)在,想象一下在沒有索引頁的書中找到特定主題是多么不方便。為此,我們必須搜索書中

    2024年02月14日
    瀏覽(96)
  • 【數(shù)據(jù)庫】sql優(yōu)化有哪些?從query層面和數(shù)據(jù)庫層面分析

    【數(shù)據(jù)庫】sql優(yōu)化有哪些?從query層面和數(shù)據(jù)庫層面分析

    這類型問題可以稱為:Query Optimization,從清華AI4DB的paper list中,該類問題大致可以分為: Query Rewriter Cardinality Estimation Cost Estimation Plan Optimization 從中文的角度理解那就是: 查詢重寫 基數(shù)估計 成本估計 執(zhí)行計劃優(yōu)化 可以發(fā)現(xiàn),這類型的優(yōu)化問題,大多數(shù)從sql本身,或者說從

    2024年01月17日
    瀏覽(96)
  • 百萬級sql server數(shù)據(jù)庫優(yōu)化案例分享

    百萬級sql server數(shù)據(jù)庫優(yōu)化案例分享

    ????????在我們的IT職業(yè)生涯中,能有一次百萬級的數(shù)據(jù)庫的優(yōu)化經(jīng)歷是很難得的,如果你遇到了恭喜你,你的職業(yè)生涯將會更加完美,如果你遇到并解決了,那么一定足夠你炫耀很多年。 ? ? ? ? 這里我將要分享一次完美的百萬級數(shù)據(jù)庫優(yōu)化經(jīng)歷,希望能給在IT行業(yè)的小

    2024年02月17日
    瀏覽(92)
  • 【數(shù)據(jù)庫·關系數(shù)據(jù)庫標準語言SQL·學習筆記】Microsoft SQL Server數(shù)據(jù)庫的建立和刪除

    【數(shù)據(jù)庫·關系數(shù)據(jù)庫標準語言SQL·學習筆記】Microsoft SQL Server數(shù)據(jù)庫的建立和刪除

    開發(fā)環(huán)境:SQL Server Management Studio(SSMS) 利用數(shù)據(jù)庫對象資源管理器創(chuàng)建數(shù)據(jù)庫 (1)右擊對象資源管理器中的數(shù)據(jù)庫,選擇新建數(shù)據(jù)庫 (2)在新建數(shù)據(jù)庫界面輸入數(shù)據(jù)庫名稱 ,并選擇確定 利用CREAT DATABASE命令在SSM工具的新建查詢中創(chuàng)建數(shù)據(jù)庫 1.語法格式 CREATE DATABASE dat

    2024年02月08日
    瀏覽(34)
  • 玩轉MySQL數(shù)據(jù)庫之SQL優(yōu)化之慢查詢

    本系列為:MySQL數(shù)據(jù)庫詳解,為千鋒資深教學老師獨家創(chuàng)作,致力于為大家講解清晰MySQL數(shù)據(jù)庫相關知識點,含有豐富的代碼案例及講解。如果感覺對大家有幫助的話,可以【關注】持續(xù)追更~ 文末有本文重點總結,技術類問題,也歡迎大家和我們溝通交流! 從今天開始本系列

    2024年02月06日
    瀏覽(98)
  • MySQL數(shù)據(jù)庫第十四課--------sql優(yōu)化---------層層遞進

    MySQL數(shù)據(jù)庫第十四課--------sql優(yōu)化---------層層遞進

    ?? ?????????????????????? ??? 作者介紹: ???? ?? ?????????????? ?? ??作者id:老秦包你會, ?? 簡單介紹:?????????????????????????????? 喜歡學習C語言和python等編程語言,是一位愛分享的博主,有興趣的小可愛可以來互討 ????

    2024年02月12日
    瀏覽(99)
  • SQL學習筆記——創(chuàng)建數(shù)據(jù)庫和表

    SQL學習筆記——創(chuàng)建數(shù)據(jù)庫和表

    一、創(chuàng)建數(shù)據(jù)庫和表 1、創(chuàng)建數(shù)據(jù)庫 打開?SSMS(Microsoft SQL Server Management Studio)→新建查詢→輸入如下圖的sql語句→點擊執(zhí)行 成功后可以看到左側數(shù)據(jù)庫中成功創(chuàng)建了“CPXS”產(chǎn)品銷售數(shù)據(jù)庫。對應路徑下新增數(shù)據(jù)庫文件。 說明: 主數(shù)據(jù)庫文件擴展名為.mdf,表示Main Data File;

    2024年02月01日
    瀏覽(35)
  • 華納云:sql server怎么導出數(shù)據(jù)庫表結構

    在 SQL Server 中,您可以使用 SQL Server Management Studio (SSMS) 工具來導出數(shù)據(jù)庫表結構。以下是使用 SSMS 導出數(shù)據(jù)庫表結構的步驟: 1.打開 SQL Server Management Studio (SSMS): 在您的計算機上打開 SQL Server Management Studio 工具。 2.連接到數(shù)據(jù)庫服務器: 使用 SSMS 連接到您想要導出表結構的

    2024年02月21日
    瀏覽(23)
  • SQL Server 清除一個數(shù)據(jù)庫下所有表數(shù)據(jù),保留表結構

    用法:在需要清空數(shù)據(jù)的數(shù)據(jù)庫創(chuàng)建并執(zhí)行存儲過程,該存儲過程并不會影響其他數(shù)據(jù)庫 ?請小心使用這些腳本,確保在生產(chǎn)環(huán)境之前備份您的數(shù)據(jù)庫。?? 免責聲明:僅技術技術分享,謹慎操作,數(shù)據(jù)無價

    2024年02月19日
    瀏覽(43)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包