主頁 > 資料庫 > Mysql資料庫知識總結

Mysql資料庫知識總結

2021-03-07 14:39:11 資料庫

sql語言

1.1sql概述
簡答題:sql 的概念及分類?
Sql 是專門操作資料庫的增刪改查的一種語言,
結構化查詢語言(Structured Query Language)簡稱 SQL,是一種特殊目的的編程語言,是一種資料庫查詢和程式設計語言,用于存取資料以及查詢、更新和管理關系資料庫系統,
Sql 的分類
1、資料定義語言(DDL Data Definition Language):針對資料庫或表做創建、 修改和洗掉操作,關鍵字:CREATE,ALTER,DROP 和 SHOW,
2、資料查詢語言(DQL Data Query Language):針對表中資料做查詢操作,關鍵 字:SELECT,
3、資料操作語言(DML Data Manipulation Language):針對表中資料做添加、修改和洗掉操作,關鍵字:INSERT、UPDATE 和 DELETE,
4、資料控制語言(DCL Data Control language):通過 GRANT 或 REVOKE 關鍵字實作權限控制,
5、事務控制語言(TCL Transcation Cnontrol language):通過 COMMIT、 SAVEPOINT、ROLLBACK 命令確保被 DML 陳述句影響的表的所有行及時得以更新,

1.2DDL語言
DDL資料定義語言:主要是針對資料庫和資料庫表進行增刪改查的操作,
Create創建 alter修改 drop洗掉 show 查詢

1)資料庫常用命令:

#mysql注釋:
#單行注釋:# –
#多行注釋:/**/
#1、展示所有資料庫
SHOW DATABASES;
#2、創建資料庫:一個連接下面資料庫名不能重復
CREATE DATABASE mysql0131;
#3、查看當前使用的資料庫版本
SELECT VERSION();
#4、切換資料庫和使用資料庫
USE mysql0131;
#5、查看當前資料庫中的所有表
SHOW TABLES;
#6、查看其他資料庫中的表
SHOW TABLES FROM xiaomi1229;
#7、查看當前正在使用的資料庫
SELECT DATABASE();
#8、查看創建資料庫的創建陳述句
#CREATE DATABASE mysql0131 /*!40100 DEFAULT CHARACTER SET utf8 */
SHOW CREATE DATABASE mysql0131;
#9、創建資料庫時指定資料庫的編碼集
CREATE DATABASE mysql0121 DEFAULT CHARACTER SET utf8;
#10、洗掉資料庫
DROP DATABASE mysql0121;

2)資料庫表常用資料型別
整數型別:tinyint、int
浮點型別:float 、double
布爾型別:(MySQL 是沒有 booblean 型別的)
在 MYSQL 中一般布爾型別都用 int 去代替了,1 代表 true,0 代表 false
字串型別:
varchar:(相當java里面的string型別)可變長度型別,無論創建表時指定多大長度,存盤資料的時候會按照資料
的實際長度進行空間占用,設定的最大值目的就是為設定最大范圍,
char:固定長度型別,當存盤資料的長度小于創建表時指定的長度時,則用空格填充,
而不會自動調整,
日期型別:
Date 年月日
Time 時分秒
Datetime(標準日期型別) 年月日時分秒
Timestamp(時間戳)年月日時分秒
Datetime Timestamp 區別:
Datetime :最大值是 9999 年 12 月 31 23:59:59、默認值 null
Timestamp :最大值是 2037 年 12 月 31 23:59:59、默認值當前系統時間

3)mysql資料庫表約束
對資料庫表欄位的一種規范要求
常用的約束:
主鍵:PRIMARY KEY 欄位非空并且唯一
非空:NOT NULL 欄位不能為空
唯一:UNIQUE 欄位值在一個表里面不能重復
默認:DEFAULT 欄位設定的默認值
自增長:AUTO_INCREMENT 整形資料每次自增加1,從1開始
外鍵:forgin key 兩表關聯的關系設定

4)資料庫表的DDL陳述句

/*
mysql資料庫表創建的時候需要設定表中列對應的資料型別
通常我們將表的列稱之為欄位
/
/

創建一個學生表:姓名 年齡 性別 生日
CREATE TABLE 表名(
欄位名稱 欄位資料型別(默認長度) ,
欄位名稱 欄位資料型別(默認長度) ,

);
/
#1、創建表的陳述句:
CREATE TABLE students(
sid INT ,
sname VARCHAR(30),
age INT ,
gender INT ,
birthday DATETIME
);
/

mysql資料庫表約束:對資料庫表欄位的一種規范要求
常用的約束:
主鍵:PRIMARY KEY 欄位非空并且唯一
非空:NOT NULL 欄位不能為空
唯一:UNIQUE 欄位值在一個表里面不能重復
默認:DEFAULT 欄位設定的默認值
自增長:AUTO_INCREMENT 整形資料每次自增加1,從1開始
外鍵:forgin key 兩表關聯的關系設定

/
/

創建一個商品表:
編號 主鍵
名稱 不能重復 非空
顏色 不能為空
價格 默認為0
*/
CREATE TABLE products(
pid INT PRIMARY KEY AUTO_INCREMENT,
pname VARCHAR(60) NOT NULL UNIQUE,
color VARCHAR(20) NOT NULL,
price DOUBLE DEFAULT 0
);

#2、查看表結構:表欄位名 型別 約束 …資訊
DESC students;
#3、查看創建表的陳述句
/*
CREATE TABLE products (
pid int(11) NOT NULL AUTO_INCREMENT,
pname varchar(60) NOT NULL,
color varchar(20) NOT NULL,
price double DEFAULT ‘0’,
PRIMARY KEY (pid),
UNIQUE KEY pname (pname)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8
*/
SHOW CREATE TABLE products;
#4、洗掉表
DROP TABLE students;
#6、給表添加一個欄位
ALTER TABLE products ADD size VARCHAR(20);
#7、修改表欄位的型別及約束
ALTER TABLE products MODIFY size INT;
DESC products;
#8、修改表中的欄位名
ALTER TABLE products CHANGE size model VARCHAR(50);
#9、洗掉表的某個欄位
ALTER TABLE products DROP model;
#10、修改表名稱
ALTER TABLE products RENAME TO prods;
二、DML語言
DML資料庫的操作語言:對資料庫表中的資料進行增加 修改 洗掉的操作,
2.1增加資料:insert
增加的語法:
Insert [into] 表名 (欄位1,欄位2…)value/values(欄位名的值…)
使用insert語法可以對資料庫表增加單潭訓者多條資料,

代碼示例:
準備作業
/*
創建一個員工表:
編號 姓名 崗位 薪資 入職日期 績效獎金 部門編號
*/
CREATE TABLE emp(
eid INT PRIMARY KEY AUTO_INCREMENT,#編號
ename VARCHAR(30) NOT NULL,#姓名
job VARCHAR(30) NOT NULL ,#崗位
salay DOUBLE ,#基本工資
hiredate DATE NOT NULL,#入職日期
money DOUBLE ,#績效獎金
dept_no INT #部門編號
);
增加練習
#增加一條員工資料:完整的語法結構
INSERT INTO emp
(eid,ename,job,salay,hiredate,money,dept_no)
VALUES
(1,“張三”,“銷售員”,12300,“2020-01-01”,2000,1);
#增加員工:姓名 和崗位(沒有非空約束的欄位會自動設定null值)
INSERT INTO emp (ename,job,hiredate)
VALUES(“張三豐”,“經理”,“2019-12-11”);
#增加一條員工資訊:增加所有欄位,欄位名可以省略
#此時所有的欄位都必須按照表結構全部賦值
#主鍵欄位設定為null即可實作自增加
INSERT INTO emp
VALUES(NULL,“趙四”,“文員”,8000,“2018-02-05”,500,2);
#into 可以省略,但是通常不建議省略
INSERT emp
VALUES(NULL,“王百萬”,“老板”,80000,“2015-02-05”,5000,NULL);
#一次增加多條資料
INSERT INTO
emp (ename,job)
VALUE
(“李思琪”,“文員”),
(“王小二”,“銷售員”),
(“光熙”,“保潔”);
#values可以使用value替換
INSERT INTO
emp (ename,job)
VALUES
(“李師師”,“經理”),
(“小二黑”,“銷售員”),
(“許家”,“經理”);

2.2修改資料:update
語法:
Update 表名
set 欄位名1=“欄位值1”,欄位名2=欄位值2…
[where 欄位名=欄位值 and 欄位名=欄位值]
其中:Update修改 set設定 where表示條件 and多個條件的連接
代碼示例:

/*
2、修改員工資料
1)修改表中所有行資料:不需要where 條件
2)修改表中多個欄位資料:多個欄位之間使用,隔開
3)修改資料的時候根據多個條件:多個條件使用and關鍵字連接
*/
#將員工表中所有人的績效設定為2000
UPDATE emp SET money=2000;
#將員工表中所有人的基本工資設定為20000績效為5000
UPDATE emp SET salay=20000,money=5000;
#將4號員工的基本工資修改為50000績效修改為null
UPDATE emp SET salay=50000,money=NULL WHERE eid=4;
#將2號部門的入職日期是2018-02-05的員工的基本工資修改為15000
UPDATE emp SET salay=15000
WHERE dept_no=2 AND hiredate=“2018-02-05”;

2.3洗掉資料:delete
語法:
Delete from 表名 [where 欄位=欄位值 and 欄位名=值]
當沒有where關鍵字的時候是洗掉表中所有資料,where條件表示根據指定條件洗掉資料,

Truncate洗掉:洗掉表中所有的資料

Delete和truncate區別:
1、delete和truncate都可以實作表資料的洗掉
2、Delete可以洗掉單條資料,truncate不可以
3、Delete洗掉表不會洗掉索引,truncate洗掉表資料同時洗掉索引,
注意事項:
在進行資料庫洗掉操作的時候,一定要確認洗掉,謹慎操作!

代碼示例:

/*
3、洗掉員工資料
*/
#洗掉小二黑員工資料
DELETE FROM emp WHERE ename=“小二黑”;
#洗掉基本工資15000績效是5000資料
DELETE FROM emp WHERE salay=15000 AND money=5000;
#洗掉所有資料:洗掉資料但是不會洗掉索引
DELETE FROM emp;
#洗掉所有資料:將索引一起洗掉重建索引
TRUNCATE TABLE emp;

三、DQL語言
DQL資料查詢語言:select

查詢的分類:
1、不帶條件查詢:select 欄位1,欄位2 …from 表名
2、帶條件查詢:select 欄位1,欄位2…from 表名 where 欄位名=值 and 欄位名=值

示例代碼:

/*
1、不帶條件查詢員工表資料
*/

#1、創建emp資料庫表
SHOW CREATE TABLE emp;

CREATE TABLE emp (
eid INT(11) NOT NULL AUTO_INCREMENT,
ename VARCHAR(30) NOT NULL,
job VARCHAR(30) NOT NULL,
salay DOUBLE DEFAULT NULL,
hiredate DATE DEFAULT NULL,
money DOUBLE DEFAULT NULL,
dept_no INT(11) DEFAULT NULL,
PRIMARY KEY (eid)
) ENGINE=INNODB AUTO_INCREMENT=15 DEFAULT CHARSET=utf8
#2、查詢所有員工的姓名
SELECT ename FROM emp;
#3、查詢所有員工的姓名和基本工資
SELECT ename,salay FROM emp;
#4、查詢員工的所有資訊
SELECT eid,ename,job,salay,hiredate,money,dept_no FROM emp;
#當查詢表中所有欄位的時候可以使用替換所有欄位*
#通常在實際開發的時候不建議使用*查詢:查詢速率慢 浪費服務器資源
SELECT * FROM emp;

#5、查詢員工的姓名和工資,展示的時候使用“姓名”“工資”
#使用as給欄位起別名,As可以省略
SELECT ename AS “姓名” ,salay AS “工資” FROM emp;
SELECT ename AS 姓名 ,salay AS 工資 FROM emp;
SELECT ename 姓名 ,salay 工資 FROM emp;
#as可以給欄位或者表起別名
SELECT e.ename ,e.salay FROM emp AS e;

#6、查詢所有員工的部門編號
SELECT dept_no FROM emp;

#7、查詢所有員工的不重復的部門編號
#distinct表示查詢的時候除去欄位重復的值
SELECT DISTINCT dept_no FROM emp;

#8、查詢所有員工的姓名和績效,如果績效為空則用0表示
#ifnull (欄位,替換的值)
SELECT ename 姓名 ,IFNULL(money,0) 績效 FROM emp;

#9、查詢員工姓名及其崗位: 如我是張三,我的崗位是銷售員
SELECT ename,job FROM emp;
#字串拼接concat(str1,str2,str3…)
SELECT CONCAT(“我是:”,ename,",我的崗位是:",job) 個人簡介 FROM emp;

#10、今年業績不錯,每個員工工資sal漲個1000,把漲薪前后的結果顯示出來
#欄位可以直接參與運算操作
SELECT ename 姓名, salay 漲薪前,salay+1000 漲薪后 FROM emp;
#11、查詢每個員工的薪資(基本工資+績效)
SELECT ename 姓名,salay+IFNULL(money ,0) 薪資 FROM emp;

/*
2、帶條件查詢

比較運算子:> < 不等于<> not(3>0)
between 3 and 5 相當于>= <=

邏輯運算:       和and  或or  

模糊查詢:like _表示一個字符 %一個或者多個字符
*/
#12、查詢出基本工資在10000~20000之間的員工資訊
SELECT * FROM emp WHERE salay >=10000 AND salay <=20000;
SELECT * FROM emp WHERE salay BETWEEN 10000 AND 20000;

#13、查詢部門編號為1或者2的員工資訊
SELECT * FROM emp WHERE dept_no =1 OR dept_no =2;
SELECT * FROM emp WHERE dept_no IN (1,2);

#14、查詢出部門編號不是2部門的員工資訊
SELECT * FROM emp WHERE dept_no <>2;
SELECT * FROM emp WHERE NOT(dept_no=2);

#15、查詢出績效為null的員工資訊
SELECT * FROM emp WHERE money IS NULL;
#16、查詢出績效不為null的員工資訊
SELECT * FROM emp WHERE money IS NOT NULL;

#17、查詢出名字以王開頭,并且兩個字的員工資訊
SELECT * FROM emp WHERE ename LIKE “王_”;
#18、查詢出名字是三個字的員工資訊
SELECT * FROM emp WHERE ename LIKE “___”;
#19、查詢出名字以王開頭的員工資訊
SELECT * FROM emp WHERE ename LIKE “王%”;
#20、找到職位最后是以"員"結尾的員工資訊
SELECT * FROM emp WHERE job LIKE “%員”;
#21、查詢出名字里面帶小的員工資訊
SELECT * FROM emp WHERE ename LIKE “%小%”;

四、高級查詢
1、排序查詢
/*
1、排序查詢:
語法: select 查詢欄位 from 表名 order by 欄位 asc /desc
asc表示升序:從小到大排序,默認值asc可以省略
desc表示降序:從大到小排序
注意事項:

當排序的欄位是多個欄位的時候:
先根據第一個欄位進行排序,當第一個欄位值相等的時候,
再按照第二個欄位排序,當第二個欄位值相等的時候再按照
第三個欄位排序
以此類推
/
#按斬訓本工資降序顯示員工資訊
SELECT * FROM emp ORDER BY salay DESC;
#按照部門編號升序顯示員工資訊
SELECT * FROM emp ORDER BY dept_no ;
#按照部門編號升序,再按照入職日期降序,最后按照薪資降序排列,顯示員工資訊
SELECT * FROM emp ORDER BY dept_no ASC,hiredate DESC,salay DESC;
2、聚合查詢
/

2、聚合查詢
mysql常用的聚合函式:
max()查詢最大值
min()查詢最小值
sum()查詢欄位值的總和
avg()查詢欄位的值平均值
count()查詢表資料總條數
*/

#求出員工的最高薪資
SELECT MAX(salay) FROM emp;
#求最低薪資
SELECT MIN(salay) FROM emp;
#求最高薪資的員工資訊:聚合查詢的結果可以作為一個變數值使用
SELECT * FROM emp WHERE salay =(SELECT MAX(salay) FROM emp);
#求員工的平均薪資
SELECT AVG(salay) FROM emp;
#查詢大于平均薪資的員工資訊
SELECT * FROM emp WHERE salay >(SELECT AVG(salay) FROM emp);
#求員工的薪資總和
SELECT SUM(salay) FROM emp;
#求員工的數量:資料的總行數
SELECT COUNT(eid) FROM emp;
SELECT COUNT() FROM emp;
SELECT COUNT(1) FROM emp;
3、分組查詢
/

3、分組查詢:
select 欄位 ,聚合查詢 from 表名 group by 欄位 [having 聚合查詢] ;
having和wehere類似表示分組查詢的條件
分組查詢使用場景:涉及 到每個 每組 每日
/
#統計每個部門下的員工數量
SELECT dept_no, COUNT(
) FROM emp GROUP BY dept_no ;
#統計每個崗位下的員工平均薪資
SELECT job,AVG(salay) FROM emp GROUP BY job;
#統計每個部門的最高薪資
SELECT dept_no,MAX(salay) FROM emp GROUP BY dept_no;

#查詢每個部門中薪資大于10000的員工人數
SELECT dept_no,COUNT(*) FROM emp
WHERE salay >10000 GROUP BY dept_no;

#查詢出部門人數大于2的部門及其人數,并按照人數降序排列
SELECT dept_no,COUNT() FROM emp
GROUP BY dept_no HAVING COUNT(
)>2
ORDER BY COUNT(*) DESC;

#查詢每個部門下最高薪資大于10000且名字中含有小的員工資訊
SELECT * FROM emp
WHERE ename LIKE “%小%”
GROUP BY dept_no HAVING MAX(salay)>10000;
4、分頁查詢
/*
4、分頁查詢
select 欄位 from 表名 limit index,size;
引數說明:
index 查詢表資料的起始索引值,索引從0開始
size表示分頁查詢的資料條數
注意:
其中index可以省略,此時表示查詢第一頁資料,也就是從索引為0開始查詢,

*/

#將我們的員工表資料進行分頁查詢,設定每頁顯示三條
#查詢一頁資料每頁顯示三條
SELECT * FROM emp LIMIT 0,3;
#查詢第二頁資料
SELECT * FROM emp LIMIT 3,3;
#查詢第三頁資料
SELECT * FROM emp LIMIT 6,3;

#limit 的引數可以省略前面的第一個引數
#查詢薪資的前三名員工資訊
SELECT * FROM emp ORDER BY salay DESC LIMIT 3;
#查詢公司入職最早的員工資訊
#如果沒有重復資料可以使用limit求最值
SELECT * FROM emp ORDER BY hiredate LIMIT 1;
#如果表中有重復資料使用聚合查詢實作
SELECT * FROM emp WHERE hiredate=(SELECT MIN(hiredate) FROM emp);
5、子查詢
/*
5、子查詢
將查詢的結果作為一個條件使用的操作
涉及的關鍵字:
all 所有
any 任意

*/
#1、查詢薪資大于平均薪資的員工資訊
SELECT * FROM emp WHERE salay >(SELECT AVG(salay) FROM emp);

#2、查詢大于0號部門所有員工的薪資的員工資訊
#第一種方式
SELECT * FROM emp WHERE salay >
(SELECT MAX(salay) FROM emp WHERE dept_no =0);
#第二種方式
SELECT * FROM emp WHERE salay >
ALL(SELECT salay FROM emp WHERE dept_no =0);

#3、查詢大于任意一位經理工資的員工資訊
SELECT * FROM emp WHERE salay >
(SELECT MIN(salay) FROM emp WHERE job=“經理”);
SELECT * FROM emp WHERE salay >
ANY (SELECT salay FROM emp WHERE job=“經理”);
#4、查詢與王百萬崗位和薪資一樣的員工資訊
SELECT * FROM emp
WHERE job=(SELECT job FROM emp WHERE ename=“王百萬”)
AND salay =(SELECT salay FROM emp WHERE ename=“王百萬”)
AND ename <> “王百萬”;

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

標籤:其他

上一篇:Mybatis的基礎學習

下一篇:Oracle資料庫入門(使用參考)

標籤雲
其他(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