主頁 > 資料庫 > 【看此篇】初識MySQL—小白真愛??????

【看此篇】初識MySQL—小白真愛??????

2021-10-03 09:20:53 資料庫

文章目錄(PS:覺得不錯請點贊收藏支持一下)

    • 一、資料庫介紹
      • 1.1 概述
      • 1.2 分類
      • 1.3 作用
      • 1.4 特點
    • 二、關系型資料庫管理系統
      • 2.1 介紹
      • 2.2 分類
    • 三、SQL的介紹
      • 3.1 概述
      • 3.2 作用
      • 3.3 分類
      • 3.4 說明
  • MySQL 資料庫
    • 一、介紹
      • 1.1 概述
      • 1.2 特點
    • 二、資料型別&約束
      • 2.1 資料型別
      • 2.2 資料約束
    • 三、命令列客戶端 MySQL
      • 3.1 登錄&退出
      • 3.2 資料庫操作的 SQL 陳述句
      • 3.3 表結構操作的 SQL 陳述句
      • 3.4 表資料操作的SQL陳述句
    • 四、基本查詢
      • 4.1 as 和 distinct 關鍵字
      • 4.2 where 條件查詢
      • 4.3 排序
      • 4.4 分頁
      • 4.5 分組
    • 五、聚合函式
      • 5.1 介紹
    • 六、連接查詢
      • 6.1 內連接查詢
      • 6.2 左連接查詢
      • 6.3 右連接查詢
      • 6.4 自連接查詢
      • 6.5 子查詢

一、資料庫介紹

1.1 概述

資料庫就是存盤和管理資料的倉庫,資料會按照一定的格式進行存盤,用戶可以對資料庫中的資料進行增加、洗掉、修改、查詢等操作,

1.2 分類

  • 關系型資料庫

    • 指采用了關系模型來組織資料的資料庫,簡單來說,關系模型指的就是二維表格模型,好比 Excel 檔案中的表格,強調使用表格的方式存盤資料,
    • 核心元素【資料行、資料列、資料表、資料庫(資料表的集合)】
    • 常用的資料庫【Oracle、Microsoft SQL Sever、MySQL、SQLite】
  • 非關系型資料庫

    • 又被稱為 NoSQL(Not Only SQL),意思是不僅僅是 SQL,對 NoSQL 最普遍的定義是"非關聯型的",強調 Key-Value 的方式存盤資料,
    • 常用的非關系型資料庫【MongoDB、Redis】

1.3 作用

  • 資料庫的作用就是存盤和管理資料,比如:我們在淘寶、京東等購物網站瀏覽的商品,這些資料都會存盤在資料庫,

1.4 特點

  • 持久化存盤
  • 讀寫速度極高
  • 保證資料的有效性

二、關系型資料庫管理系統

2.1 介紹

資料庫管理系統(英語全拼: Relational Database Management System,簡稱 RDBMS) 是為管理關系型資料庫而設計的軟體系統,也可以理解為它是一個應用軟體,

2.2 分類

  • 關系型資料庫服務端軟體

    • 主要負責管理不同的資料庫,而每個資料庫里面會有一系列資料檔案,資料檔案是用來存盤資料的,其實資料庫就是一系列資料檔案的集合,
  • 關系型資料庫客戶端軟體、

    • 主要負責和關系型資料庫服務端軟體進行通信,向服務端傳輸資料或者從服務端獲取資料,

三、SQL的介紹

3.1 概述

SQL(英語全拼:Structured Query Language) 是結構化查詢語言,是一種用來操作RDBMS的資料庫的語言,也就是說 SQL 可以操作 Oracle、Microsoft SQL Sever、MySQL、SQLite 等關系型的資料庫,

3.2 作用

SQL 的作用是實作資料庫客戶端和資料庫服務端之間的通信,也就是說 SQL 是通信的橋梁,

3.3 分類

  • DQL:資料查詢語言,用于對資料進行查詢,如:select
  • DML:資料操作語言,對資料進行增加、洗掉、修改,如:insert、update、delete
  • TPL:事務處理語言,對事務進行處理,如:begin、transaction、commit、rollback
  • DCL:資料控制語言,進行授權與權限回收,如:grant、revoke
  • DDL:資料定義語言,進行資料庫、表的管理等,如:create、drop

3.4 說明

  • SQL 語言不區分大小寫
  • 對于程式員來說,重點是資料的增、刪、改、查,必須熟練撰寫 DQL、DML,還能夠撰寫 DDL 完成資料庫、表的操作,其它操作如 TPL、DCL了解即可,

MySQL 資料庫

一、介紹

1.1 概述

MySQL 是一個關系型資料庫管理系統,在 Web 應用方面,MySQL 是最好的 RDBMS(英語全拼: Relational Database Management System,關系型資料庫管理系統)應用軟體,它是由瑞典 MySQL AB 公司開發,目前屬于 Oracle 旗下產品,MySQL 是最流行的關系型資料庫管理系統中的一個,

1.2 特點

  • 開源,不需要支付額外的費用,
  • 支持大型的資料庫,可以處理擁有上千萬條記錄的大型資料庫,
  • 使用標準的 SQL 資料語言形式,
  • 可以安裝在不同的作業系統,并且提供多種編程語言的操作介面,包括 C、C++、Python、Java等等,

二、資料型別&約束

眾所周知,資料庫中的資料保存在資料表中,為了在表中更加準確的存盤資料,保證資料的正確有效,開發者為表添加了一些強制性的驗證,比如:資料型別、約束,

2.1 資料型別

資料型別是指在創建表的時候為表中欄位指定資料型別,只有資料符合型別要求才能存盤起來,使用資料型別的原則:夠用就行,盡量使用取值范圍小的,這樣可以節省更多的存盤空間,

  • 常用資料型別

    • 整數:int,bit
    • 小數:decimal
    • 字串:varchar,char
    • 日期時間:date,time,datetime
    • 列舉型別:enum
  • 說明

    • decimal 表示浮點數,如:decimal(5,2) 表示共存5位數,小數占2位,
    • char 表示固定長度的字串,如 char(3),如果填充 ‘ab’ 時會補一個空格為 'ab ',3 表示字符數,
    • varchar 表示可變長度的字串,如 varchar(3),填充 ‘ab’ 時就會存盤 ‘ab’,3 表示字符數,
    • 字串 text 表示存盤大文本,當字符大于 4000 時推薦使用,比如技術博客,
    • 對于圖片、音頻、視頻等檔案,不存盤在資料庫中,而是上傳到某個服務器上,然后在表中存盤這個檔案的保存路徑,

附錄表

  • 整數型別
型別位元組大小有符號范圍(signed)無符號范圍(Unsigned)
TINYINT(tinyint)1-128 ~ 1270 ~ 255
SMALLINT(smallint)2-32768 ~ 327670 ~ 65535
MEDIUMINT(mediumint)3-8388608 ~ 83886070 ~ 16777215
INT/INTEGER(int/integer)4-2147483648 ~ 21474836470 ~ 4294967295
BIGINT(bigint)8-9223372036854775808 ~ 92233720368547758070 ~ 18446744073709551615
  • 字串
型別說明使用場景
CHAR(char)固定長度,小型資料身份證號、手機號、電話、密碼
VARCHAR(varchar)可變長度,小型資料姓名、地址、品牌、型號
TEXT(text)可變長度,字符個數大于 4000存盤小型文章或新聞
LONGTEXT(longtext)可變長度,極大型文本資料存盤極大型文本資料
  • 時間型別
型別位元組大小示例
DATE(date)4‘2021-01-01’
TIME(time)3‘12:29:59’
DATETIME(datetime)8‘2021-01-01 12:29:59’
YEAR(year)1‘2021’
TIMESTAMP(timestamp)4‘1970-01-01 00:00:01’ UTC ~ ‘2038-01-01 00:00:01’ UTC

2.2 資料約束

約束是指資料在資料型別限定的基礎上額外增加的要求,

  • 常見的約束
    • 主鍵 primary key:物理上存盤的順序,MySQL 建議所有表的主鍵欄位都叫 id ,型別為 int unsigned,
    • 自動增加 auto_increment:必須先定義了鍵,如:foreign key、primary key,才能使用自動增加,使用時該欄位的資料型別必須是整數型別,一個表中只能由一個自動增長欄位,
    • 非空 not null:此欄位不允許填寫空值,
    • 唯一 unique:此欄位的值不允許重復,
    • 默認 default:當不填寫欄位對應的值會使用默認值,如果填寫時以填寫為準,
    • 外鍵 foreign key:對關系欄位進行約束,當為關系欄位填寫值時,會到關聯的表中查詢此值是否存在,如果存在則填寫成功,不存在則填寫失敗并拋出例外,

三、命令列客戶端 MySQL

3.1 登錄&退出

  • 登錄命令
mysql -u root -p;

-u 后面是登錄的用戶名
-p 后面時登錄密碼,如果不填寫,回車之后會提示輸入密碼
  • 退出命令
quit 或 exit 或 ctrl + d

3.2 資料庫操作的 SQL 陳述句

  • 查看所有資料庫
show databases;
  • 創建資料庫
create database 資料庫名 charset=utf8;

例:
create database python charset=utf8;
  • 使用資料庫
use 資料庫名;
  • 查看當前使用的資料庫
select database();
  • 洗掉資料庫 !(慎重使用)
drop database 資料庫名;

3.3 表結構操作的 SQL 陳述句

  • 查看當前資料庫中所有表
show tables;
  • 創建表
create table 表名(
欄位名稱 資料型別 可選的約束條件,
欄位名稱 資料型別 可選的約束條件,
...
);

例: 創建一個學生表,添加學號(id),姓名(name),性別(gender)欄位
create table student(
id int primary key auto_increment,
name varchar(20),
gender enum('男','女','保密')
);
  • 修改表-【添加欄位】
add: 增加

alter table 表名 add 欄位名 型別 約束;
  • 修改表-【修改欄位型別】
modify: 只能修改欄位型別或約束,不能修改欄位名

alter table 表名 modify 欄位名 型別 約束;.
  • 修改表-【修改欄位名和欄位型別】
change: 既能修改欄位名還能修改欄位型別和約束

alter table 表名 change 欄位原名 欄位新名 型別 約束;
  • 修改表-【洗掉欄位】
drop: 可以洗掉欄位名

alter table 表名 drop 欄位名;
  • 查看創表SQL陳述句
show create table 表名;
  • 查看創庫SQL陳述句
show create database 資料庫名;
  • 修改表名
alter table 舊表名 rename to 新表名;
  • 洗掉表 !(慎重使用)
drop table 表名;

3.4 表資料操作的SQL陳述句

  • 查詢資料
1. 查詢所有欄位
select * from 表名;

2. 查詢指定欄位
select 欄位名1,欄位名2... from 表名;
  • 添加資料
1. 為表中所有欄位添加資料,值的順序需要與結構欄位的順序完全一一對應
insert into 表名 values(值1,值2...);

2. 為表中所有欄位添加多個資料,值的順序需要與結構欄位的順序完全一一對應
insert into 表名 values(值1,值2...),(值1,值2...),(值1,值2...)...;

3. 對表中指定的欄位添加資料,值的順序需要與指定的欄位名順序完全一一對應
insert into 表名(欄位名1,欄位名2) values(值1,值2);

4. 對表中指定的欄位添加多條資料,值的順序需要與指定的欄位名順序完全一一對應
insert into 表名(欄位名1,欄位名2) values(值1,值2),(值1,值2)....;

說明:
1. 如果有欄位是主鍵自動增長型別,那么在為表中所有欄位添加資料時需要占位,通常使用空值(0 或者 null 或者 default)來進行占位,
2. 為所有欄位添加資料時,如果其中一個欄位列有默認值可以使用 default 來占位,
  • 修改資料
update 表名 set 欄位名1=值1,欄位名2=值2... where 條件;
  • 洗掉資料
delete from 表名 where 條件

四、基本查詢

4.1 as 和 distinct 關鍵字

  • as 關鍵字

使用 SQL 陳述句顯示結果時,顯示的欄位名不具備良好的可讀性,這時,我們可以使用 as 給欄位起一個別名

1. 使用 as 給欄位起別名
select id as 序號,name as 名字,gender as 性別 from 表名;

2. 使用 as 給表起別名
  1) 如果是單表查詢,可以省略表名
  select 欄位名1,欄位名2... from 表名;
  2) 表名.欄位名 示例:
  select 表名.欄位名1,表名.欄位名2... from 表名;
  2) 使用 as 給表起別名 示例:
  select 別名.欄位名1,別名.欄位名2... from 表名 as 別名;
  • distinct 關鍵字
distinct : 去除重復資料行

select distinct 欄位名1,欄位名2... from 表名;

4.2 where 條件查詢

使用 where 條件查詢主要作用于對表中的資料進行篩選,獲取到想要的結果,

  • 語法格式
select * from 表名 where 條件;

where 陳述句支持的運算子【比較運算子、邏輯運算子、模糊查詢、范圍查詢、空判斷】

  • 比較運算子查詢

比較運算子分別有【=(等于)、>(大于)、>=(大于等于)、<(小于)、<=(小于等于)、!=(不等于)、<>(不等于)】

舉例
1. 查詢 編號欄位 大于等于 5 的資料;
select * from 表名 where 編號欄位名 >= 5;

2. 查詢 編號欄位 不等于 2 的資料;
select * from 表名 where 編號欄位名 != 2;

比較好理解就不過多介紹了
  • 邏輯運算子查詢

邏輯運算子包括【and、or、not】

舉例
1. 查詢 編號欄位大于5 并且 性別欄位為女 的資料;
select * from 表名 where 編號欄位名 >= 5 and 性別欄位名 = '女';
  • 模糊查詢
    • like:模糊查詢關鍵字
    • %:表示任意多個任意字符
    • _: 表示一個任意字符
舉例
1. 查詢 姓名欄位 姓為張 的資料;
select * from 表名 where 姓名欄位名 like '張%';

2. 查詢 姓名欄位 姓為張 名是一個字 的資料;
select * from 表名 where 姓名欄位名 like '張_';
  • 范圍查詢
    • between … and … 表示在一個連續的范圍內查詢
    • in 表示在一個非連續的范圍內查詢
1. 查詢 編號欄位 3 到 6 的資料;
select * from 表名 where 編號欄位名 between 3 and 6;

2. 查詢 編號欄位 3 和 6 的資料;
select * from 表名 where 編號欄位名 in (3,6);
  • 空判斷查詢
    • 判斷為空使用:is null
    • 判斷非空使用:is not null
1. 查詢 年齡欄位 內容為空 的資料;
select * from 表名 where 年齡欄位名 is null;

2. 查詢 年齡欄位 內容不為空 的資料;
select * from 表名 where 年齡欄位名 is not null;

注意:
> 不能使用 where 欄位名 = null 判斷為空
> 不能使用 where 欄位名 != null 判斷非空
> null 不等于 '' 空字串

4.3 排序

  • 語法
select * from 表名 order by 欄位名1 desc [欄位名2 desc];

說明:
1. 先按照 欄位名1 進行排序,如果 欄位名1 的值相同時,則按照 欄位名2 排序,以此類推
2. asc 從小到大排序,即升序
3. desc 從大刀小排序,即降序
4. 默認按照 欄位名值 從小到大排序 (即 asc 關鍵字)
  • 舉例
1. 查詢 所有資訊,按 年齡欄位 升序排序;
select * from 表名 order by 年齡欄位名;

2. 查詢 所有資訊,按 年齡欄位 降序排序;
select * from 表名 order by 年齡欄位名 desc;

4.4 分頁

  • 語法
select * from 表名 limit start,count

說明:
1. limit 是分頁查詢關鍵字
2. start 表示開始行索引,默認為0
3. count 表示查詢條數
  • 舉例
1. 查詢 表中前3條 資料;
select * from 表名 limit 0,3;

也可以這樣寫
select * from 表名 limit 3;
  • 案例

已知每頁顯示 m 條資料,求第 n 頁顯示的資料
分析:需要求每頁的開始行索引

select * from 表名 limit (n-1)*m,m;

4.5 分組

  • 語法
select 欄位名 from 表名 group by 欄位名 having 條件;

說明:
1. group by 是分組查詢的關鍵字
2. having 也是關鍵字,都是和 group by 一起使用,主要用于篩選,后面也可以是聚合函式
  • 舉例
1. 對 學生表 中的 性別欄位 進行分組,并統計各組有多少人
select 性別欄位名,count(*) from 學生表 group by 性別欄位名

2. 對 學生表 中的 成績欄位 進行分組,篩選出大于60分的組,并統計各組有多少條資料
select 成績欄位名,count(*) from 學生表 group by 成績欄位名 having 成績欄位名 > 60;

注意: 使用 group by 分組查詢關鍵字后,查詢串列建議只出現分組欄位和聚合函式

五、聚合函式

5.1 介紹

聚合函式又叫組函式,通常是對表中的資料進行統計結果計算,一般結合分組 (group by) 來使用,用于統計和計算分組資料,

  • 常用的聚合函式

    • count(col):表示求指定 欄位 的總條數
    • max(col):表示求指定 欄位 的最大值
    • min(col):表示求指定 欄位 的最小值
    • sum(col):表示求指定 欄位 的和
    • avg(col):表示求指定 欄位 的平均值
  • 舉例

1. 求 姓名欄位 總條數
select count(姓名欄位名) from 表名;

2. 求 年齡欄位 最大值
select max(年齡欄位名) from 表名;

3. 求 年齡欄位 最小值
select min(年齡欄位名) from 表名;

4. 求 身高欄位 的和
select sum(身高欄位名) from 表名;

5. 求 身高欄位 的平均值
select avg(身高欄位名) from 表名;

如果 身高欄位 中的值有 null 時,需要這樣寫
select avg(ifnull(身高欄位名,新的值)) from 表名;

說明:
> ifnull 函式: 表示判斷指定欄位的值是否為 null,如果為空使用自己提供的值
> 聚合函式默認忽略欄位為 null 的記錄,要想 指定欄位的值為 null 的記錄也參與計算,必須使用 ifull 函式對 null 值做替換,

六、連接查詢

連接查詢可以實作多個表的查詢,當查詢的欄位資料來自不同的表就可以使用連接查詢來完成,

連接查詢包括【內連接查詢、左連接查詢、右連接查詢、自連接查詢】

6.1 內連接查詢

查詢兩個表中符合條件的共有記錄

  • 語法格式
select 欄位名 from 表1 inner join 表2 on 表1.欄位1 = 表2.欄位2; 

說明:
1. inner join 就是內連接查詢關鍵字
2. on 就是連接查詢條件
  • 舉例
使用 內連接 查詢學生表與班級表
select * from 學生表 inner join 班級表 on 學生表.欄位名 = 班級表.欄位名;

6.2 左連接查詢

以左表為主,根據條件查詢右表中的資料,如果根據條件查詢右表的資料不存在時使用 null 填充

  • 語法格式
select 欄位名 from 表1 left join 表2 on 表1.欄位1 = 表2.欄位2

說明:
1. left join 就是左連接查詢關鍵字
2. on 就是連接查詢條件
3. 表1 是左表
4. 表2 是右表
  • 舉例
使用 左連接 查詢學生表與班級表
select * from 學生表 left join 班級表 on 學生表.欄位名 = 班級表.欄位名; 

6.3 右連接查詢

以右表為主,根據條件查詢左表中的資料,如果根據條件查詢左表的資料不存在時使用 null 填充

  • 語法格式
select 欄位名 from 表1 right join 表2 on 表1.欄位1 = 表2.欄位2;

說明:
1. right join 就是右連接查詢關鍵字
2. on 就是連接查詢條件
3. 表1 是左表
4. 表2 是右表
  • 舉例
使用 右連接 查詢學生表與班級表
select * from 學生表 right join 班級表 on 學生表.欄位名 = 班級表.欄位名;

6.4 自連接查詢

左表和右表是同一個表,根據連接查詢條件查詢兩個表中的資料

  • 語法格式
select 表1別名.欄位名,表2別名.欄位名... from 表1 as 表1別名 right join 表2 as 表2別名 on 表1別名.欄位1 = 表2別名.欄位2;

說明:
> 自連接查詢必須對表起別名

6.5 子查詢

在一個 select 陳述句中,嵌入了另外一個 select 陳述句,那么被嵌入的 select 陳述句稱之為子查詢陳述句,外部那個 select 陳述句則稱為主查詢,

  • 主查詢和子查詢的關系

    • 子查詢是嵌入到主查詢中
    • 子查詢是輔助主查詢的,要么充當條件,要么充當資料源
    • 子查詢是可以獨立存在的陳述句,是一條完整的 select 陳述句
  • 語法格式

select * from 表名 where 欄位名 條件 (select * from 表名);  
  • 舉例
查詢 大于平均年齡 的 學生表
select * from 學生表 where 年齡欄位 > (select avg(年齡欄位) from 學生表);

能不能續更就看你們啦 🤣

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

標籤:其他

上一篇:Gin框架專案實戰(二)

下一篇:NoSQL基礎及MongoDB入門安裝

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