主頁 > 資料庫 > 資料庫作業14:SQL總結

資料庫作業14:SQL總結

2021-04-26 12:08:26 資料庫

資料庫作業14:SQL總結

本文可分為以下幾個內容

  • 模式的定義與洗掉
    • 定義模式
    • 洗掉模式
  • 基本表的定義、洗掉與修改
    • 定義基本表
    • 修改基本表
    • 洗掉基本表
  • 索引的建立與洗掉
    • 建立索引
    • 修改索引
    • 洗掉索引
  • 資料查詢
    • WHERE子句常用的查詢條件
    • 字符匹配
    • ORDER BY子句
    • 聚集函式
  • 連接查詢
    • 等值與非等值連接查詢
  • 嵌套查詢
    • 帶有ANY(SOME)或ALL謂詞的子查詢
    • 帶有EXISTS謂詞的子查詢
    • 集合查詢
    • 基于派生表的查詢
    • SELECT陳述句的一般格式
  • 資料更新
    • 插入資料
      • 插入元組
      • 插入子查詢結果
    • 修改資料
    • 洗掉資料
  • 空值的處理
  • 視圖
    • 定義視圖
      • 建立視圖
      • 洗掉視圖
    • 查詢視圖
    • 更新視圖
  • 授權:授予與識訓
    • GRANT
    • REVOKE
  • 資料庫角色
    • 角色的創建
    • 給角色授權
    • 將一個角色授予其他的角色或用戶
  • 視圖機制
    • 審計
  • 完整性約束命名子句
    • 完整性約束命名子句
    • 域中的完整性限制
  • 斷言
    • 創建斷言的陳述句格式
  • 觸發器
    • 定義觸發器
    • 存盤程序和函式
      • 存盤程序
        • 創建存盤程序
        • 執行存盤程序
        • 修改存盤程序
        • 洗掉存盤程序
      • 函式
        • 函式的定義陳述句格式
        • 函式的執行陳述句格式
        • 修改函式

模式的定義與洗掉

定義模式

CREATE SCHEMA<模式名>AUTHORIZATION<用戶名>;
  • 如果沒有指定<模式名>,那么<模式名>隱含為<用戶名>,

洗掉模式

DROP SCHEMA <模式名><CASCADE|RESTRICT>;
  • CASCADE是級聯,表示在洗掉模式的同時把該模式中所有的資料庫物件全部洗掉
  • RESTRICT是限制,表示如果模式中已經定義了下屬的資料庫物件,則拒絕該洗掉陳述句的執行,

基本表的定義、洗掉與修改

定義基本表

CREATE TABLE<表名>(<列名><資料型別>[列級完整性約束條件]
					[<列名><資料型別>[列級完整性約束條件]]
					...
					[,<表級完整性約束條件>]);/*表級寫在最后*/
  • 建表的同時通常還可以定義與該表有關的完整性約束條件,這些完整性約束條件被存入系統的資料字典中,當用戶操作表中資料時由關系資料庫管理系統自動檢查該才做是否違背這些完整性約束條件,如果完整性約束條件涉及該表的多個屬性列,則必須定義在表級上,否則既可以定義在列級也可以定義在表級,

修改基本表

ALTER TABLE <表名>
[ADD[COLUMN]<新列名><資料型別>[完整性約束]]
[ADD<表級完整性約束>]
--增加新列、新的列級完整性約束條件和新的表級完整性約束條件
[DROP [COLUMN]<列名>[CASCADE|RESTRICT]]
--用于洗掉表中的列
[DROP CONSTRAINT<完整性約束名>[RESTRICT|CASCADE]]
--用于洗掉指定的完整性約束條件
[ALTER COLUMN<列名><資料型別>]
--修改原有的列定義,包括修改列名和資料型別,

洗掉基本表

DROP TABLE<表名>[RESTRICT|CASCADE];
  • T-SQL中不支持級聯洗掉,應先查詢外鍵將外鍵洗掉
SELECT NAME
FROM SYS.FOREIGN_KEY_COLUMNS F JOIN SYS.OBJECTS O ON F.CONSTRAINT_OBJECT_ID=O.OBJECT_ID
WHERE F.PARENT_OBJECT_ID=OBJECT_ID(<表名>)
  • 然后洗掉外鍵約束名:
ALTER TABLE <表名> DROP CONSTRAINT <外鍵名>

詳情可查看:資料庫作業3:第三章例題實踐

索引的建立與洗掉

建立索引

CREATE [UNIQUE][CLUSTER]INDEX<索引名>
ON<表名>(<列名>[<次序>][,<列名>[<次序>]]...);
  • 每個<列名>后面還可以用<次序>指定索引值的排列次序,可選ASC(升序)或DESC(降序),默認值為ASC,

修改索引

ALTER INDEX <舊索引名>RENAME TO<新索引名>;

在T-SQL中與標準SQL仍有差別,詳情可查看:資料庫作業4:插入資料、單表查詢以及整體實作!

洗掉索引

在SQL中,洗掉索引使用DROP INDEX陳述句,其一般格式為:

DROP INDEX <索引名>;
  • 在T-SQL中,陳述句必須為其設定表名和索引名:
DROP INDEX <索引名> ON <表名>;

詳情可查看:資料庫作業4:插入資料、單表查詢以及整體實作!

資料查詢

SQL提供了SELECT陳述句進行資料查詢,該陳述句具有靈活的使用方式和豐富的功能,其一般格式為:

SELECT [ALL|DISTINCT]<目標列運算式>[,<目標列運算式>]...
FROM<表名或視圖名>[,<表名或視圖名>...]|(<SELECT陳述句>)[AS]<別名>
[WHERE<條件運算式>]
[GROUP BY<列名1>[HAVING<條件運算式>]]
[ORDER BY<列名2>[ASC|DESC]];
  • 如果有GROUP BY子句,則將結果按<列名1>的值進行分組,該屬性列值相等的元組為一個組,通常會在每組中作用聚集函式,如果GROUP
    BY子句帶HAVING短語,則只有滿足指定條件的組才予以輸出,
    如果有ORDER BY子句,則結果表還要按<列名2>的值的升序或降序排序,

WHERE子句常用的查詢條件

查詢條件謂詞
比較=, >, <, >=, <=, !=, <>, !>, !<; NOT+上述比較運算子
確定范圍BETWEEN AND, NOT BETWEEN AND
確定集合IN, NOT IN
字符匹配LIKE, NO
空值IS NULL, IS NOT NULL
多重條件(邏輯運算)AND, OR, NOT

字符匹配

謂詞LIKE可以用來進行字串的匹配,其一般語法格式如下:

[NOT] LIKE '<匹配串>' [ESCAPE'<換碼字符>']
  • <匹配串>可以是一個完整的字串,也可以含有通配符%和_,其中:
  • %代表任意長度的字串,
  • _代表任意單個字符,

ORDER BY子句

用戶可以用ORDER BY子句對查詢結果按照一個或多個屬性列的升序(ASC)或降序(DESC)排序,默認值為升序,

聚集函式

COUNT * --統計元組個數
COUNT([DISTINCT|ALL]<列名>) --統計一列中值的個數
SUM([DISTINCT|ALL]<列名>)  --計算一列值的總和(此列必須時數值型)
AVG([DISTINCT|ALL]<列名>)  --計算一列值的平均值(此列必須是數值型)
MAX([DISTINCT|ALL]<列名>)  --求一列值的最大值
MIN([DISTINCT|ALL]<列名>)  --求一列值的最小值
  • 如果指定DISTINCT短語,則表示在計算時要取消置頂列中的重復值,如果不指定DISTINCT短語或指定ALL短語,則表示不取消重復值,

連接查詢

等值與非等值連接查詢

連接查詢的WHERE子句中用來連接兩個表的條件稱為連接條件或連接謂詞,其一般格式為:

[<表名1>.]<列名1><比較運算子>[<表名2>.]<列名2>

此外連接謂詞還可以使用下面形式:

[<表名1>.]<列名1>BETWEEN[<表名2>.]<列名2>AND[<表名2>.]<列名3>
  • 當連接運算子為=時,稱為等值連接,使用其他運算子稱為非等值連接,

嵌套查詢

在SQL語言中,一個SELCECT-FROM-WHERE陳述句成為一個查詢塊,將一個查詢塊嵌套在另一個查詢塊的WHERE子句或HAVING短語的條件中的查詢成為嵌套查詢,例如:

SELECT Sname --外層查詢或父查詢
FROM Student
WHERE Sno IN
	(SELECT Sno--內層查詢或子查詢
	FROM SC
	WHERE Cno='2');
  • 本例中,下層查詢塊是嵌套在上層查詢塊條件中的,上層的查詢塊稱為外層查詢或父查詢,下層查詢塊稱為內層查詢或子查詢,

帶有ANY(SOME)或ALL謂詞的子查詢

子查詢回傳單值時可以用比較運算子,但回傳多值時要用ANY(有的系統用SOME)或ALL為此修飾符,而是用ANY或ALL謂詞時必同時使用比較運算子,

> ANY  大于子查詢結果中的某個值

> ALL  大于子查詢結果中的所有值

< ANY  小于子查詢結果中的某個值

< ALL  小于子查詢結果中的所有值

>=ANY  大于等于子查詢結果中的某個值

>=ALL  大于等于子查詢結果中的所有值

<=ANY  小于等于子查詢結果中的某個值

<=ALL 小于等于子查詢結果中的所有值

= ANY  等于子查詢結果中的某個值

= ALL  等于子查詢結果中的所有值(通常沒有實際意義)

!=(<>) ANY  不等于子查詢結果中的某個值

!=(<>) ALL  不等于子查詢結果中的任何一個值

帶有EXISTS謂詞的子查詢

EXISTS代表存在量詞,帶有EXISTS謂詞的子查詢不回傳任何資料,只產生邏輯真值“true”或邏輯假值“false”;

集合查詢

集合操作主要包括并操作UNION、交操作INTERSECT和差操作EXCEPT,
ps:參加集合操作的各查詢結果的列數必須相同;對應項的資料型別也必須相同,

基于派生表的查詢

子查詢不僅可以出現在WHERE子句中,還可以出現在FROM子句中,這是子查詢生成的臨時派生表成為主查詢的查詢物件,

SELECT陳述句的一般格式

SELECT陳述句時SQL的核心陳述句,從前面的例子可以看到其陳述句成分豐富多樣,總結一下他們的一般格式,
SELECT陳述句的一般格式:

	SELECT[ALL|DISTINCT]<目標列運算式>[別名][,<目標列運算式>[別名]]...
	FROM<表名或視圖名>[別名][,<表明或視圖名>[別名]...]|(<SELECT陳述句>)[AS]<別名>
	[WHERE<條件運算式>]
	[GROUP BY<列名1>[HAVING<條件運算式>]]
	[ORDER BY<列名2>[ASC|DESC]];

資料更新

插入資料

插入元組

插入元組的INSERT陳述句格式為:

INSERT
INTO<表名>[<屬性列1>[,<屬性列2>]...)]
VALUES(<常量1>[,<常量2>]...);

插入子查詢結果

子查詢不僅可以嵌套在SELECT陳述句中用以構造父查詢的條件,也可以嵌套在INSERT陳述句中用以生成要插入的批量資料,
格式如下:

INSERT
INTO<表名>[(<屬性列1>[,<屬性列2>...])]
子查詢;

修改資料

修改操作又稱為更新操作,其陳述句的一般格式為:

UPDATE<表名>
SET<列名>=<運算式>[,<列名>=<運算式>]...
[WHERE<條件>];

洗掉資料

洗掉陳述句的一般格式為:

DELETE
FROM<表名>
[WHERE<條件>];

空值的處理

所謂空值就是“不知道”或“不存在”或“無意義”的值,

取空值一般有以下幾種情況:

  • 該屬性應該有一個值,但目前不知道它的具體值,
  • 該屬性不應該有值,
  • 由于某種原因不便于填寫,

空值是一個很特殊的值,含有不確定性,對關系運算帶來特殊的問題,需要做特殊的處理,

視圖

視圖是從一個或幾個基本表(或視圖)匯出的表,它與基本表不同,是一個虛表,資料庫中只存放視圖的定義,而不存放視圖對應的資料,這些資料仍存放在原來的基本表中,

定義視圖

建立視圖

SQL語言用CREATE VIEW命令建立視圖,其一般格式為:

CREATE VIEW <視圖名>[(<列名>[,<列名>]...)]
AS<子查詢>
[WITH CHECK OPTION];
  • 子查詢可以是任意的SELECT陳述句,是否可以含有ORDER BY子句和DISTINCT短語,則取決于具體系統的實作,

洗掉視圖

該陳述句的格式為:

DROP VIEW<視圖名>[CASCADE];
  • 視圖洗掉后視圖的定義將從資料字典中洗掉,如果該視圖上還匯出了其他視圖,則使用CASCADE級聯洗掉陳述句把該視圖和由它匯出的所有視圖一起洗掉,

查詢視圖

視圖定義后,用戶就可以像對基本表一樣對視圖進行查詢了,

更新視圖

  • 是指通過視圖來插入(INSERT)、洗掉(DELETE)和修改(UPDATE),
  • 由于試圖是不實際存盤資料的虛表,因此對視圖的更新最終瑤轉換為對基本表的更新,

授權:授予與識訓

SQL中使用GRANT和REVOKE陳述句向用戶授予或識訓對資料的操作權限,GRANT陳述句向用戶授予權限,REVOKE陳述句識訓已經授予的用戶權限,

GRANT

GRANT陳述句的一般格式為:

GRANT <權限>[,<權限>]...
ON<物件型別><物件名>[,<物件型別><物件名>]...
TO<用戶>[,<用戶>]...
[WITH GRANT OPTION];
  • "[WITH GRANT OPTION];"是指被授權用戶還可以授予其他用戶權限,但不允許回圈授予;

REVOKE

授予用戶的權限可以由資料庫管理員或其他授權者用REVOKE陳述句識訓,REVOKE陳述句的一般格式為:

REVOKE<權限>[,<權限>]...
ON<物件型別><物件名>[,<物件型別><物件名>]...
FROM<用戶>[,<用戶>]...[CASCADE|RESTRICT];

資料庫角色

角色的創建

創建角色的SQL陳述句格式是:

CREATE ROLE<角色名>

給角色授權

GRANT<權限>[,<權限>]...
ON<物件型別>物件名
TO<角色>[,<角色>]...
  • 資料庫管理員和用戶可以利用GRANT陳述句將權限授予某一個或幾個角色,

將一個角色授予其他的角色或用戶

GRANT<角色1>[,<角色2>]...
TO<角色3>[,<用戶1>]...
[WITH ADMIN OPTION]
  • 授予或者是角色的創建者,或者擁有在這個角色上的ADMIN OPTION, 如果制定了WITH ADMIN
    OPTION子句,則獲得某種權限的角色或用戶還可以把這種權限再授予其他角色,

視圖機制

[例4.14]建立計算機系學生的視圖,把對該視圖的SELECT 權限授予王平,把該視圖上的所有操作權限授予張明,

GO
CREATE VIEW CS_Student
AS
	SELECT *
	FROM Student
	WHERE Sdept='CS';

GRANT SELECT
ON CS_Student
TO 王平;

GRANT ALL PRIVILEGES
ON CS_Student
TO 張明;
GO

審計

審計功能就是資料庫管理系統達到C2以上安全級別必不可少的一項指標,
審計日志是將用戶對資料庫的所有操作記錄在上面,

完整性約束命名子句

SQL還在CREATE TABLE陳述句中提供了完整性約束命名子 CONSTRAINT,用來對完整性約束條件命名,從而可以靈活地增加、洗掉一個完整性約束條件,

完整性約束命名子句

CONSTRAINT<完整性約束條件名><完整性約束條件>
  • <完整性約束條件>包括NOT NULL、UNIQUE、PRIMARY KEY、FOREIGN KEY、CHECK短語等,

域中的完整性限制

SQL支持域的概念,并可以用CREATE DOMAIN陳述句建立一個域以及該域應該滿足的完整性約束條件,然后就可以用域來定義屬性,

斷言

在SQL中可以使用資料定義語言中的CREATE ASSERTION陳述句,通過宣告性斷言來指定更具一般性的約束,

創建斷言的陳述句格式

CREATE ASSERTION<斷言名><CHECK 子句>
  • 每個斷言都被賦予一個名字,<CHECK 子句>中的約束條件與WHERE子句的條件運算式類似,

觸發器

  • 任何用戶對表的增、刪、改操作均由服務器自動激活相應的觸發器,在關系資料庫管理系統核心層進行集中的完整性控制,
  • 觸發器類似于約束,但是比約束更加靈活,可以實施更為復雜的檢查和操作,具有更精細和更強大的資料控制能力,

定義觸發器

SQL使用CREATE TRIGGER命令建立觸發器,其一般格式為:

CREATE TRIGGER<觸發器名>
{BEFORE|AFTER}<觸發事件>ON<表名>
REFERENCING NEW|OLD ROW AS<變數>
FOR EACH{ROW|STATEMENT}
[WHEN<觸發條件>]<觸發動作體>

存盤程序和函式

存盤程序是由程序化SQL陳述句書寫的程序,這個程序經編譯和優化后存盤在資料庫服務器中,因此稱它為存盤程序,使用時只要呼叫即可,

存盤程序

創建存盤程序

CREATE OR REPLACE PROCEDURE 程序名 ([引數1,引數2,...])
AS<程序化SQL語言>;

執行存盤程序

CALL/PERFORM PROCEDURE 程序名([引數1,引數2,...]);

修改存盤程序

使用ALTER PROCEDURE 重命名一個存盤程序:

ALTER PROCEDURE 程序1 RENAME TO 程序2

洗掉存盤程序

DROP PROCEDURE 程序名();

函式

函式的定義陳述句格式

CREATE OR REPLACE FUNCTION 函式名 ([引數1,引數2,...])RETURNS<型別>
AS <程序化SQL>;

函式的執行陳述句格式

CALL/SELECT 函式名 ([引數1,引數2,...]);

修改函式

可以使用ALTER FUNCTION重命名一個自定義函式;

ALTER FUNCTION 程序名1 RENAME TO 程序名2

可以使用ALTER FUNCTION重新編譯一個函式:

ALTER FUNCTION 函式名 COMPILE;

有關觸發器,存盤程序和函式的T-SQL陳述句請查看:資料庫作業12:第五章例題(5.1~5.20)

至此,SQL總結已全部完成!在過往的學習中,經歷了不少困難,解決困難之后還是有很大識訓!在以后的學習中也應該更加努力!

感謝閱讀~

轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/280263.html

標籤:其他

上一篇:分庫分表之后,id 主鍵如何處理?

下一篇:MySQL索引的底層實作原理

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • GPU虛擬機創建時間深度優化

    **?桔妹導讀:**GPU虛擬機實體創建速度慢是公有云面臨的普遍問題,由于通常情況下創建虛擬機屬于低頻操作而未引起業界的重視,實際生產中還是存在對GPU實體創建時間有苛刻要求的業務場景。本文將介紹滴滴云在解決該問題時的思路、方法、并展示最終的優化成果。 從公有云服務商那里購買過虛擬主機的資深用戶,一 ......

    uj5u.com 2020-09-10 06:09:13 more
  • 可編程網卡芯片在滴滴云網路的應用實踐

    **?桔妹導讀:**隨著云規模不斷擴大以及業務層面對延遲、帶寬的要求越來越高,采用DPDK 加速網路報文處理的方式在橫向縱向擴展都出現了局限性。可編程芯片成為業界熱點。本文主要講述了可編程網卡芯片在滴滴云網路中的應用實踐,遇到的問題、帶來的收益以及開源社區貢獻。 #1. 資料中心面臨的問題 隨著滴滴 ......

    uj5u.com 2020-09-10 06:10:21 more
  • 滴滴資料通道服務演進之路

    **?桔妹導讀:**滴滴資料通道引擎承載著全公司的資料同步,為下游實時和離線場景提供了必不可少的源資料。隨著任務量的不斷增加,資料通道的整體架構也隨之發生改變。本文介紹了滴滴資料通道的發展歷程,遇到的問題以及今后的規劃。 #1. 背景 資料,對于任何一家互聯網公司來說都是非常重要的資產,公司的大資料 ......

    uj5u.com 2020-09-10 06:11:05 more
  • 滴滴AI Labs斬獲國際機器翻譯大賽中譯英方向世界第三

    **桔妹導讀:**深耕人工智能領域,致力于探索AI讓出行更美好的滴滴AI Labs再次斬獲國際大獎,這次獲獎的專案是什么呢?一起來看看詳細報道吧! 近日,由國際計算語言學協會ACL(The Association for Computational Linguistics)舉辦的世界最具影響力的機器 ......

    uj5u.com 2020-09-10 06:11:29 more
  • MPP (Massively Parallel Processing)大規模并行處理

    1、什么是mpp? MPP (Massively Parallel Processing),即大規模并行處理,在資料庫非共享集群中,每個節點都有獨立的磁盤存盤系統和記憶體系統,業務資料根據資料庫模型和應用特點劃分到各個節點上,每臺資料節點通過專用網路或者商業通用網路互相連接,彼此協同計算,作為整體提供 ......

    uj5u.com 2020-09-10 06:11:41 more
  • 滴滴資料倉庫指標體系建設實踐

    **桔妹導讀:**指標體系是什么?如何使用OSM模型和AARRR模型搭建指標體系?如何統一流程、規范化、工具化管理指標體系?本文會對建設的方法論結合滴滴資料指標體系建設實踐進行解答分析。 #1. 什么是指標體系 ##1.1 指標體系定義 指標體系是將零散單點的具有相互聯系的指標,系統化的組織起來,通 ......

    uj5u.com 2020-09-10 06:12:52 more
  • 單表千萬行資料庫 LIKE 搜索優化手記

    我們經常在資料庫中使用 LIKE 運算子來完成對資料的模糊搜索,LIKE 運算子用于在 WHERE 子句中搜索列中的指定模式。 如果需要查找客戶表中所有姓氏是“張”的資料,可以使用下面的 SQL 陳述句: SELECT * FROM Customer WHERE Name LIKE '張%' 如果需要 ......

    uj5u.com 2020-09-10 06:13:25 more
  • 滴滴Ceph分布式存盤系統優化之鎖優化

    **桔妹導讀:**Ceph是國際知名的開源分布式存盤系統,在工業界和學術界都有著重要的影響。Ceph的架構和演算法設計發表在國際系統領域頂級會議OSDI、SOSP、SC等上。Ceph社區得到Red Hat、SUSE、Intel等大公司的大力支持。Ceph是國際云計算領域應用最廣泛的開源分布式存盤系統, ......

    uj5u.com 2020-09-10 06:14:51 more
  • es~通過ElasticsearchTemplate進行聚合~嵌套聚合

    之前寫過《es~通過ElasticsearchTemplate進行聚合操作》的文章,這一次主要寫一個嵌套的聚合,例如先對sex集合,再對desc聚合,最后再對age求和,共三層嵌套。 Aggregations的部分特性類似于SQL語言中的group by,avg,sum等函式,Aggregation ......

    uj5u.com 2020-09-10 06:14:59 more
  • 爬蟲日志監控 -- Elastc Stack(ELK)部署

    傻瓜式部署,只需替換IP與用戶 導讀: 現ELK四大組件分別為:Elasticsearch(核心)、logstash(處理)、filebeat(采集)、kibana(可視化) 下載均在https://www.elastic.co/cn/downloads/下tar包,各組件版本最好一致,配合fdm會 ......

    uj5u.com 2020-09-10 06:15:05 more
最新发布
  • day02-2-商鋪查詢快取

    功能02-商鋪查詢快取 3.商鋪詳情快取查詢 3.1什么是快取? 快取就是資料交換的緩沖區(稱作Cache),是存盤資料的臨時地方,一般讀寫性能較高。 快取的作用: 降低后端負載 提高讀寫效率,降低回應時間 快取的成本: 資料一致性成本 代碼維護成本 運維成本 3.2需求說明 如下,當我們點擊商店詳 ......

    uj5u.com 2023-04-20 08:33:24 more
  • MySQL中binlog備份腳本分享

    關于MySQL的二進制日志(binlog),我們都知道二進制日志(binlog)非常重要,尤其當你需要point to point災難恢復的時侯,所以我們要對其進行備份。關于二進制日志(binlog)的備份,可以基于flush logs方式先切換binlog,然后拷貝&壓縮到到遠程服務器或本地服務器 ......

    uj5u.com 2023-04-20 08:28:06 more
  • day02-短信登錄

    功能實作02 2.功能01-短信登錄 2.1基于Session實作登錄 2.1.1思路分析 2.1.2代碼實作 2.1.2.1發送短信驗證碼 發送短信驗證碼: 發送驗證碼的介面為:http://127.0.0.1:8080/api/user/code?phone=xxxxx<手機號> 請求方式:PO ......

    uj5u.com 2023-04-20 08:27:27 more
  • 快取與資料庫雙寫一致性幾種策略分析

    本文將對幾種快取與資料庫保證資料一致性的使用方式進行分析。為保證高并發性能,以下分析場景不考慮執行的原子性及加鎖等強一致性要求的場景,僅追求最終一致性。 ......

    uj5u.com 2023-04-20 08:26:48 more
  • sql陳述句優化

    問題查找及措施 問題查找 需要找到具體的代碼,對其進行一對一優化,而非一直把關注點放在服務器和sql平臺 降低簡化每個事務中處理的問題,盡量不要讓一個事務拖太長的時間 例如檔案上傳時,應將檔案上傳這一步放在事務外面 微軟建議 4.啟動sql定時執行計劃 怎么啟動sqlserver代理服務-百度經驗 ......

    uj5u.com 2023-04-20 08:26:35 more
  • 云時代,MySQL到ClickHouse資料同步產品對比推薦

    ClickHouse 在執行分析查詢時的速度優勢很好的彌補了MySQL的不足,但是對于很多開發者和DBA來說,如何將MySQL穩定、高效、簡單的同步到 ClickHouse 卻很困難。本文對比了 NineData、MaterializeMySQL(ClickHouse自帶)、Bifrost 三款產品... ......

    uj5u.com 2023-04-20 08:26:29 more
  • sql陳述句優化

    問題查找及措施 問題查找 需要找到具體的代碼,對其進行一對一優化,而非一直把關注點放在服務器和sql平臺 降低簡化每個事務中處理的問題,盡量不要讓一個事務拖太長的時間 例如檔案上傳時,應將檔案上傳這一步放在事務外面 微軟建議 4.啟動sql定時執行計劃 怎么啟動sqlserver代理服務-百度經驗 ......

    uj5u.com 2023-04-20 08:25:13 more
  • Redis 報”OutOfDirectMemoryError“(堆外記憶體溢位)

    Redis 報錯“OutOfDirectMemoryError(堆外記憶體溢位) ”問題如下: 一、報錯資訊: 使用 Redis 的業務介面 ,產生 OutOfDirectMemoryError(堆外記憶體溢位),如圖: 格式化后的報錯資訊: { "timestamp": "2023-04-17 22: ......

    uj5u.com 2023-04-20 08:24:54 more
  • day02-2-商鋪查詢快取

    功能02-商鋪查詢快取 3.商鋪詳情快取查詢 3.1什么是快取? 快取就是資料交換的緩沖區(稱作Cache),是存盤資料的臨時地方,一般讀寫性能較高。 快取的作用: 降低后端負載 提高讀寫效率,降低回應時間 快取的成本: 資料一致性成本 代碼維護成本 運維成本 3.2需求說明 如下,當我們點擊商店詳 ......

    uj5u.com 2023-04-20 08:24:03 more
  • day02-短信登錄

    功能實作02 2.功能01-短信登錄 2.1基于Session實作登錄 2.1.1思路分析 2.1.2代碼實作 2.1.2.1發送短信驗證碼 發送短信驗證碼: 發送驗證碼的介面為:http://127.0.0.1:8080/api/user/code?phone=xxxxx<手機號> 請求方式:PO ......

    uj5u.com 2023-04-20 08:23:11 more