【MySQL】數據庫中常用的函數

目錄

  • 聚合函數
    • COUNT()函數的多種用法
      • COUNT(*)
      • COUNT(主鍵)
      • COUNT(1)
      • COUNT(常量)
      • COUNT(非主鍵)
      • COUNT(distinct(字段))
    • COUNT()函數小結
  • 字符函數
    • length(str)函數:獲取參數值的字節個數
    • concat(str1,str2,...)函數:字符串拼接
    • upper(str)、lower(str)函數:大小寫轉換
    • substr(str,start,len)函數:截取字符串
    • substring_index(str,delim,count)
    • instr(str,要查找的子串)函數
    • trim(str)函數
    • lpad(str,len,填充字符)、rpad(str,len,填充字符)函數
    • replace(str,子串,另一個字符串)函數
    • concat_ws(separator,str1,str2,…)
    • elt(n,str1,str2,str3,…)
    • insert(str,pos,len,newstr)
    • reverse(str)翻轉字符串
  • 數學函數
    • round(x,保留位數)函數
    • ceil(x)函數:向上取整
    • floor(x)函數:向下取整
    • truncate(x,D)函數
    • mod(被除數,除數)函數
    • pow(x,D)函數
    • 絕對值函數:ABS()
    • 圓周率函數:PI()
    • 獲取隨機數:RAND()
  • 時間/日期函數
    • now()函數
    • curdate()函數
    • curtime()函數
    • 獲取日期和時間中的年、月、日、時、分、秒
    • weekofyear()函數:獲取當前時刻所屬周數
    • quarter()函數:獲取當前時刻所屬的季度
    • str_to_date()函數:字符串轉日期
    • date_format()函數:日期轉字符串
    • date_add(日期,interval num 時間)函數
    • last_day()函數:提取某個月最后一天的日期
    • datediff(end_date,start_date)函數:計算兩個時間相差的天數
    • timestampdiff(unit,start_date,end_date)函數: 計算兩個時間返回的年/月/天數;
    • ADDDATE(d,n)
    • ADDTIME(t,n)
    • DATE_SUB(date,INTERVAL expr type)
    • DAYNAME(d):返回日期 d 是星期幾,如Monday,Tuesday
    • DAYOFMONTH(d)、DAYOFWEEK(d)等
    • NULLIF(expr1, expr2)
  • 流程操作函數
    • if(expr,v1,v2)函數
    • ifnull()函數
    • case…when函數的三種用法
      • 1.等值判斷:可以實現多條件的查詢值賽選;
      • 2.區間判斷:類似于python中if-elif-else的效果;
      • case … when和聚合函數聯用
  • 系統信息函數
    • version()函數:查看MySQL系統版本信息號
    • connection_id()函數:查看當前登入用戶的連接次數數
    • processlist:查看用戶的連接信息
    • database(),schema()函數
    • user(),current_user(),system_user()函數
  • 其它函數
    • md5(str)函數 加密函數;
    • encode(str,pswd_str)、decode(加密的字符串,pswd_str)函數
    • uuid():生成唯一序列UUID

聚合函數

聚合函數通常會跟分組查詢結合使用

  • SUM(字段):求和
  • AVG(字段):求平均值
  • MIN(字段):求最小值
  • MAX(字段):求最大值
  • COUNT(*):統計符合條件的記錄總條數

COUNT()函數的多種用法

count(1)、count(*)、count(常量)、count(主鍵)、count(非主鍵)、count(distinct(字段)) 等多個函數

COUNT(*)

  • 對于 MyISAM 引擎,會把表的總行數存在了磁盤上(存放在 information_schema 庫中的 PARTITIONS 表中),在不加 where 條件時,執行 count(*) 時會直接返回這個總數,因此效率很高,但是在加 where 限定語句的時候 MySQL 需要對全表進行檢索從而得出 count 的總數。

  • 而 InnoDB 引擎并沒有像 MyISAM 那樣把表的總行數存儲在磁盤,而是在執行 count(* )時,在不加 where 限定語句時,MySQL Server 層需要把數據從引擎里面讀出來,然后逐行累加得出總數;如果加了 where 限定語句,需要根據 where 條件從引擎里面篩選出數據,然后累加得出總數。

COUNT(主鍵)

  • 對于 MyISAM 引擎,不加 where 條件時,直接返回的表中保存的數據總行數值;加 where 條件時,需要走主鍵索引篩選出值后再統計;

  • 對于 InnoDB 引擎,不加 where 條件時,count(id) 和 count(*) 的處理方式一樣,MySQL優化器會選擇最小樹索引age 索引進行遍歷統計;加 where 條件時,需要走主鍵索引篩選出值后再統計

COUNT(1)

對于 MyISAM 引擎,count(1) 和 count(*) 的 邏輯是一樣的。

對于 InnoDB 引擎,按照官方文檔,count(1) 和 count(*) 的處理方式一樣,無性能差別

COUNT(常量)

count(常量)的執行邏輯和 count(1) 的邏輯是一樣的,比如:count(5)、count(‘abc’)、count(‘.’)

COUNT(非主鍵)

只統計非主鍵字段值不為NULL的總數,不管在 InnoDB 引擎 還是在 MyISAM引擎中執行,非主鍵這個字段是否添加了索引直接影響了count() 統計掃描表的行數,從而影響統計的性能

COUNT(distinct(字段))

count(distinct(字段)) 其實是 count(字段) + distinct 的結果集,統計字段不為NULL,并且在字段值重復的情況下只統計一次

COUNT()函數小結

  1. count(expr)函數的參數 expr可以是任意的表達式,該函數用于統計在符合搜索條件的記錄總數;
  2. count(expr)函數執行效率從低到高排序為:count(非主鍵字段) < count(主鍵) < count(1) ≈ count(*) ;
  3. 對于 count(1) 和 count() ,效率相當,建議盡量使用 count(),因為 MySQL 優化器會選擇最小的索引樹進行統計,把優化的問題交給 MySQL 優化器去解決就可以了;
  4. count(列字段) 只統計不為 NULL 的總行數,比如,count(name),當name字段值為NUll時,就不會被count;而其他的count,它返回檢索到的行數,無論它們是否包含 NULL值;
  5. count(NULL) 總是返回 0;
  6. count(expr) 聚合函數在統計時,帶與不帶 where 條件實現原理具有差異性,性能也存在差異性;
  7. 在生產中,對于InnoDB 引擎,如果對數據總量不要求特別精確,可以使用 “show table status” 方式獲取總行數;
  8. 因為 MySQL一直在快速發展,所以不同的版本實現可能存在差異,所以在研究技術的時候一定要注意版本差異;
  9. 在生產環境中,應盡量避免 count(expr)這種耗時操作,如果一定要進行統計,可以根據統計數據的精確度來區分采用什么方式統計;也可以在專業 DBA 的指導下進行,或者通過 explain 執行計劃宏觀看下count(expr) 操作會掃描多少數據行,如果對性能影響比較大,可以選擇在離線庫或者只讀庫中進行

字符函數

length(str)函數:獲取參數值的字節個數

對于utf-8字符集來說,一個英文占1個字節;一個中文占3個字節;
對于gbk字符集來說,一個英文占1個字節;一個中文占2個字節;

select length('蘇生Susheng') as 長度 from dual;

在這里插入圖片描述

concat(str1,str2,…)函數:字符串拼接

通過輸入的參數str1、str2等,將他們拼接成一個字符串。

select concat('蘇生','-','Susheng') as 作者信息 from dual;

在這里插入圖片描述

upper(str)、lower(str)函數:大小寫轉換

upper(str):將字符中的所有字母變為大寫
lower(str)將字符中的所有字母變成小寫
lcase(str)是 lower()的同義詞,用法一樣。

select upper('susheng') as 大寫, lower('SUSHENG') as 小寫 from dual;

在這里插入圖片描述

substr(str,start,len)函數:截取字符串

str為輸入字符串,從start位置開始截取字符串,len表示要截取的長度; 沒有指定len長度:表示從start開始起,截取到字符串末尾。指定了len長度:表示從start開始起,截取len個長度。
mid(str,pos,len)是 substring(str,pos,len)的同義詞,截取字符串功能,用法一樣

select substr('我是CSDN的蘇生,低調學習',8,2) as 截取輸出 from dual;

在這里插入圖片描述注:8是開始位置,此處起始位置,2是開始到結束位置的長度,并不是索引的結束位置

substring_index(str,delim,count)

在定界符 delim 以及count 出現前,從字符串str返回自字符串。若count為正值,則返回最終定界符(從左邊開始)左邊的一切內容。若count為負值,則返回定界符(從右邊開始)右邊的一切內容。

 select substring_index('pro,file,admin',',',-1) from dual;

在這里插入圖片描述

instr(str,要查找的子串)函數

  • 返回子串第一次出現的索引,如果找不到,返回0;
  • 當查找的子串存在于字符串中:返回該子串在字符串中【第一次】出現的索引。
  • 當查找的子串不在字符串中:返回0
select instr('我是CSDN的蘇生,低調學習','蘇生') as 第一次出現 from dual;
select instr('我是CSDN的蘇生,低調學習','書生') as 第一次出現 from dual;

在這里插入圖片描述在這里插入圖片描述

trim(str)函數

去掉字符串前后的空格; 該函數只能去掉字符串前后的空格,不能去掉字符串中間的空格。

select trim('   我是CSDN的蘇生    低調學習   ') as 空格去除 from dual;

在這里插入圖片描述

lpad(str,len,填充字符)、rpad(str,len,填充字符)函數

lpad(左填充):用指定的字符,實現對字符串左填充指定長度
rpad(右填充):用指定的字符,實現對字符串右填充指定長度

select lpad('1',3,'0') as out_put from dual;
select rpad('1.0',5,'0') as out_put from dual;

在這里插入圖片描述在這里插入圖片描述注:這里的填充len指的是用填充字符填充后的總長度,也就是若你的len選擇5你的字符串含有位置為4則只能填充一個字符,也就是填充字符的第一個字符

replace(str,子串,另一個字符串)函數

將字符串str中的字串,替換為另一個字符串

select username as 替換之前,replace(username,'liubei','liuxuande') as 替換之后 from user;

在這里插入圖片描述

concat_ws(separator,str1,str2,…)

是concat()的特殊形式。第一個參數是其它參數的分隔符。
分隔符的位置放在要連接的兩個字符串之間。
分隔符可以是一個字符串,也可以是其它參數。
如果分隔符為 null,則結果為 null。
函數會忽略任何分隔符參數后的 null 值。

select concat_ws(':',username,userpass,role) from user;

在這里插入圖片描述在這里插入圖片描述

elt(n,str1,str2,str3,…)

若n=1,則返回值為str1若n=2,則返回值為 str2 ,以此類推。若n小于1或大于參數的數目,則返回值為 null 。

select username,elt(role,'管理員','版主','會員','游客') as 身份 from user;

在這里插入圖片描述

select username,elt(role,'管理員','版主','會員','游客') as 身份 from user;

在這里插入圖片描述

insert(str,pos,len,newstr)

  • 返回字符串 str, 其子字符串起始于 pos 位置和長期被字符串 newstr取代的len 字符。
  • 如果pos 超過字符串長度,則返回值為原始字符串。假如len的長度大于其它字符串的長度,則從位置pos開始替換。若任何一個參數為null,則返回值為null。
select insert('susheng',1,2,'shu') from dual;

在這里插入圖片描述

reverse(str)翻轉字符串

select 'admin' as 翻轉前,reverse('admin') as 翻轉后 from dual;

在這里插入圖片描述

數學函數

round(x,保留位數)函數

四舍五入; 當對正數進行四舍五入:按照正常的計算方式,四舍五入即可。當對負數進行四舍五入:先把符號丟到一邊,對去掉負號后的正數進行四舍五入,完成以后,再把這個負號,補上即可。

select round(1.595658,3) as out_put from dual;

在這里插入圖片描述

ceil(x)函數:向上取整

向上取整,返回>=該參數的最小整數。求的是大于等于這個數字的最小整數

select ceil(1.9),ceil(1.1) from dual;

在這里插入圖片描述

floor(x)函數:向下取整

向下取整,返回<=該參數的最大整數,求的是小于等于這個數字的最大整數。

select floor(1.9),floor(1.1) from dual;

在這里插入圖片描述

truncate(x,D)函數

  • 此函數叫截斷函數,顧名思義就是就是截取不要的部分,然后刪掉(斷掉)它。在小數點的D位置處,截取數字直接刪去數字,若在左邊就是位置取整不使用任何法則。

  • 把truncate當作小數點(.)x是要截取的數字。D為正數時是小數點的右側部分,D為0時則不要小數部分,D為負數時是小數點左邊部分,具體使用看例子演示。

select truncate(314159.2673525,5) as 截取之后 from dual;
select truncate(314159.2673525,0) as 截取之后 from dual;
select truncate(314159.2673525,-4) as 截取之后 from dual;

在這里插入圖片描述

mod(被除數,除數)函數

取余; 當被除數為正數,結果就是正數。當被除數為負數,結果就是負數。

select mod(10,3) as out_put from dual;

在這里插入圖片描述

pow(x,D)函數

此函數是用于計算指數函數,x為底,D為指數
select pow(5,2) as 平方運算 from dual;

select pow(5,2) as 平方運算 from dual;

在這里插入圖片描述

絕對值函數:ABS()

select abs(-99) from dual;

在這里插入圖片描述

圓周率函數:PI()

在這里插入圖片描述

獲取隨機數:RAND()

每次調用都會得到一個0-1之間的浮點數

select RAND(),RAND(),RAND(),RAND() from dual;

在這里插入圖片描述

時間/日期函數

  • DATE_FORMAT(“20000101”, ‘%Y-%m-%d’) – 2020-01-01
  • DATE_FORMAT(“2000-01-01”, ‘%Y-%m-%d’) – 2020-01-01
  • DATE_FORMAT(‘2000-05-07 05:06:07’, ‘%H:%i:%s’) – 05:06:07 (24小時制)
  • DATE_FORMAT(‘2000-05-07 05:06:07’, ‘%h:%i:%s’) – 05:06:07 (12小時制)
  • DATE_FORMAT(‘2000-05-07 05:06:07’, ‘%Y-%m-%d %H:%i:%s’) – 2000-05-07 05:06:07
    在這里插入圖片描述

now()函數

select now() from dual;

在這里插入圖片描述

curdate()函數

只返回系統當前的日期,不包含時間

select curdate() from dual;

在這里插入圖片描述

curtime()函數

只返回當前的時間,不包含日期

select curtime() from dual;

在這里插入圖片描述

獲取日期和時間中的年、月、日、時、分、秒

  • 獲取年份:year()
  • 獲取月份:month()
  • 獲取日:day()
  • 獲取小時:hour()
  • 獲取分鐘:minute()
  • 獲取秒數:second()
select year(now()) from dual;

在這里插入圖片描述

weekofyear()函數:獲取當前時刻所屬周數

select weekofyear(now()) from dual;

在這里插入圖片描述

quarter()函數:獲取當前時刻所屬的季度

select quarter(curdate()) from dual;

在這里插入圖片描述

str_to_date()函數:字符串轉日期

select str_to_date('2024,3,1','%Y,%c,%d');

在這里插入圖片描述

date_format()函數:日期轉字符串

select date_format(now(),'%Y年%m月%d日') from dual;

在這里插入圖片描述

date_add(日期,interval num 時間)函數

向前、向后偏移日期和時間,正號為向后,負號為向前,除此之外還有hour(小時),minute(分鐘),second(秒)

select curdate() as '當前時間',date_add(curdate(),interval 1 year) as '一年后',date_add(curdate(),interval 1 month) as '一個月后',date_add(curdate(),interval 1 day) as '一天后' 
from dual;

在這里插入圖片描述

last_day()函數:提取某個月最后一天的日期

select last_day(now()) from dual;

在這里插入圖片描述

datediff(end_date,start_date)函數:計算兩個時間相差的天數

select datediff(curdate(),'2000-1-1') from dual;在這里插入圖片描述

timestampdiff(unit,start_date,end_date)函數: 計算兩個時間返回的年/月/天數;

unit參數是確定(start_date,end_date)結果的單位,表示為整數,以下是有效單位:
year:年份、month:月份、day:天、hour:小時、minute 分鐘、second:秒、microsecond:微秒、week:周數、quarter:季度

select timestampdiff(year,'2000-1-1',curdate()) from dual;

在這里插入圖片描述

ADDDATE(d,n)

計算起始日期 d 加上 n 天的日期

SELECT  ADDDATE("2017-06-15",  INTERVAL 10 DAY);

在這里插入圖片描述

ADDTIME(t,n)

n 是一個時間表達式,時間 t 加上時間表達式 n

# 加5秒
SELECT  ADDTIME('2011-11-11  11:11:11',5);

在這里插入圖片描述

DATE_SUB(date,INTERVAL expr type)

函數從日期減去指定的時間間隔。

SELECT DATE_SUB('2024-3-1',INTERVAL  2 DAY) AS OrderPayDate FROM dual;

在這里插入圖片描述

DAYNAME(d):返回日期 d 是星期幾,如Monday,Tuesday

SELECT  DAYNAME('2011-11-11  11:11:11') from dual;

在這里插入圖片描述

DAYOFMONTH(d)、DAYOFWEEK(d)等

DAYOFMONTH(d):計算日期 d 是本月的第幾天
DAYOFWEEK(d):日期 d 今天是星期幾,1 星期日,2 星期一,以此類推

NULLIF(expr1, expr2)

比較兩個字符串,如果字符串 expr1 與 expr2 相等返回 NULL,否則返回 expr1

SELECT  NULLIF(25,25),nullif(24,25);

在這里插入圖片描述

流程操作函數

if(expr,v1,v2)函數

實現if-else的效果,如果expr是true,返回v1。如果expr是false,返回v2

select studentresult,if(studentresult<60,'不及格',studentresult) as 成績 from result where subjectno=1;

在這里插入圖片描述

ifnull()函數

判斷值是否為null,是null用指定值填充;如果v1不為NULL,返回v2。否則返回v1

select studentno,studentname,ifnull(address,'地址不詳') from student order by studentno desc limit 5;

在這里插入圖片描述

case…when函數的三種用法

1.等值判斷:可以實現多條件的查詢值賽選;

case 要判斷的字段或表達式
when 常量1 then 要顯示的值1或語句1
when 常量2 then 要顯示的值2或語句2

else 要顯示的值n或語句n
end

select studentname,gradeid,case gradeid when 1 then '一年級' when 2 then '二年級' when 3 then '三年級' else '四年級' end as 年級 from student order by studentno desc limit 5;

在這里插入圖片描述

2.區間判斷:類似于python中if-elif-else的效果;

case
when 條件1 then 要顯示的值1或語句1
when 條件2 then 要顯示的值2或語句2

else 要顯示的值n或語句n
end

select studentresult ,case when studentresult <60 then '不及格' when studentresult >= 60 and studentresult < 80 then '及格' else '優秀' end as 檔次  from result where subjectno = 1;

在這里插入圖片描述

case … when和聚合函數聯用

select subjectno,max(studentresult) 最高分,min(studentresult) 最低分,avg(studentresult) 平均分, sum(case when studentresult>=60 then 1 else 0 end)/count(*) 及格率,sum(case when studentresult>=80 then 1 else 0 end)/count(*) 優秀率,sum(case when studentresult < 60 then 1 else 0 end)/count(*) 不及格率 
from result group by subjectno;

在這里插入圖片描述

系統信息函數

version()函數:查看MySQL系統版本信息號

select version() from dual;

在這里插入圖片描述

connection_id()函數:查看當前登入用戶的連接次數數

直接調用CONNECTION_ID()函數–不需任何參數–就可以看到當下連接MySQL服務器的連接次數,不同時間段該函數返回值可能是不一樣的

select connection_id();

在這里插入圖片描述

processlist:查看用戶的連接信息

show processlist;

在這里插入圖片描述

  • Id列:登錄MySQL的用戶標識,是系統自動分配的CONNECTION ID;
  • User列:顯示當前的“用戶名”;
  • Host列:顯示執行這個語句的IP,用來追蹤出現問題語句的用戶;
  • db列:顯示這個進程目前連接的是哪個數據庫;
  • Command列:顯示當前連接執行的命令,一般是休眠(Sleep)、查詢(Query)、連接(Connect);
  • Time列:顯示這個狀態持續的時間,單位是秒;
  • State列:顯示使用當前連接的SQL語句的狀態,包含有:Copying to tmptable、Sorting result、Sending data等狀態;
  • Info列:顯示當前SQL的內容,如果語句過長可能無法顯示完全。

database(),schema()函數

查看當前使用的數據庫

select database(),schema();

在這里插入圖片描述

user(),current_user(),system_user()函數

獲取當前用戶

select user(),current_user(),system_user();

在這里插入圖片描述

其它函數

md5(str)函數 加密函數;

  • 參數為字符串,該函數為字符串算出一個MD5 128比特校驗和
  • 返回值以32位16進制數字的二進制字符串形式返回
  • str為NULL,返回NULL
  • select md5(‘Susheng’);
    在這里插入圖片描述

encode(str,pswd_str)、decode(加密的字符串,pswd_str)函數

加密:encode(被加密的密碼,密碼);
解密:decode(encode(被加密的密碼,密碼),密碼); //也可以用上面返回的二進制字符串

uuid():生成唯一序列UUID

select uuid();

在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/714494.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/714494.shtml
英文地址,請注明出處:http://en.pswp.cn/news/714494.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Linux高負載排查最佳實踐

在Linux系統中&#xff0c;經常會因為負載過高導致各種性能問題。那么如何進行排查&#xff0c;其實是有跡可循&#xff0c;而且模式固定。 本次就來分享一下&#xff0c;CPU占用過高、磁盤IO占用過高的排查方法。 還是那句話&#xff0c;以最佳實踐入手&#xff0c;真傳一句話…

1 開源鴻蒙OpenHarmony niobe407 STM32F407IGT6芯片輕型系統全量源碼4.1版本下載流程

開源鴻蒙OpenHarmony niobe407 STM32F407IGT6芯片輕型系統全量源碼4.1版本下載流程 作者將狼才鯨日期2024-02-27 一、前景提要 如果通過DevEco Marketplace網站獲取下載源碼的話&#xff0c;不全&#xff0c;有些板子下不到&#xff1b;OpenHarmony開發板列表&#xff0c;官方…

數據庫-第二/三章 關系數據庫和標準語言SQL【期末復習|考研復習】

前言 總結整理不易&#xff0c;希望大家點贊收藏。 給大家整理了一下計數據庫系統概論中的重點概念&#xff0c;以供大家期末復習和考研復習的時候使用。 參考資料是王珊老師和薩師煊老師的數據庫系統概論(第五版)。 文章目錄 前言第二、三章 關系數據庫和標準語言SQL2.1 關系2…

JVM原理-基礎篇

Java虛擬機&#xff08;JVM, Java Virtual Machine&#xff09;是運行Java應用程序的核心組件&#xff0c;它是一個抽象化的計算機系統模型&#xff0c;為Java字節碼提供運行環境。JVM的主要功能包括&#xff1a;類加載機制、內存管理、垃圾回收、指令解釋與執行、異常處理與安…

React react.fragment和<>的使用及區別

React一個常用的模式是組件返回多個元素。Fragment可以為你的子元素分組而不需要在DOM上為它們添加額外的節點。 Fragment 使用 render() {return (<React.Fragment> <ChildA /> <ChildB /> <ChildC /> </React.Fragment> );}短語法使用 這里…

虛擬機內存不夠用了?全流程操作Look一下?

虛擬機信息&#xff1a;操作系統&#xff1a;CentOS Linux 7 (Core)&#xff0c;用的是VMware Workstation 16 Pro 版本16.2.3 build-19376536&#xff1b;我的主機 Windows 10 Education, 64-bit (Build 22000.1817) 10.0.22000 前言&#xff1a;虛擬機用久了就會出現內存不足…

代碼隨想錄算法訓練營Day37|738.單調遞增的數字、968.監控二叉樹

738.單調遞增的數字 題目鏈接&#xff1a;738.單調遞增的數字 文檔鏈接&#xff1a;738.單調遞增的數字 視頻鏈接&#xff1a;貪心算法&#xff0c;思路不難想&#xff0c;但代碼不好寫&#xff01;LeetCode:738.單調自增的數字 C實現 class Solution { public:int monotoneIn…

Rocky Linux 安裝部署 Zabbix 6.4

一、Zabbix的簡介 Zabbix是一種開源的企業級監控解決方案&#xff0c;用于實時監測服務器、網絡設備和應用程序的性能和可用性。它提供了強大的數據收集、處理和可視化功能&#xff0c;同時支持事件觸發、報警通知和自動化任務等功能。Zabbix易于安裝和配置&#xff0c;支持跨平…

6、Redis-KV設計、全局命令和安全性

目錄 一、value設計 二、Key設計 三、全局命令——針對所有key 四、安全性 一、value設計 ①是否需要排序&#xff1f;需要&#xff1a;Zset ②需要緩存的數據是單個值還是多個值&#xff1f; 單個值&#xff1a;簡單值---String&#xff1b;對象值---Hash多個值&#x…

【前端素材】推薦優質后臺管理系統網頁Hyper平臺模板(附源碼)

一、需求分析 1、系統定義 后臺管理系統是一種用于管理和控制網站、應用程序或系統的管理界面。它通常被設計用來讓網站或應用程序的管理員或運營人員管理內容、用戶、數據以及其他相關功能。后臺管理系統是一種用于管理網站、應用程序或系統的工具&#xff0c;通常由管理員使…

【AIGC】OpenAI推出王炸級模型sora,顛覆AI視頻行業(2024)

對于OpenAI推出的Sora模型&#xff0c;我們可以進一步探討其可能的技術細節、潛在應用以及對AI視頻行業的影響。 點擊以下任一云產品鏈接&#xff0c;跳轉后登錄&#xff0c;自動享有所有云產品優惠權益&#xff1a; 經過筆者親測&#xff0c;強烈推薦騰訊云輕量應用服務器作…

【分類討論】【割點】1568. 使陸地分離的最少天數

作者推薦 動態規劃的時間復雜度優化 本文涉及知識點 分類討論 割點 LeetCode1568. 使陸地分離的最少天數 給你一個大小為 m x n &#xff0c;由若干 0 和 1 組成的二維網格 grid &#xff0c;其中 1 表示陸地&#xff0c; 0 表示水。島嶼 由水平方向或豎直方向上相鄰的 1 …

接口詳細說明

接口概述 接口也是一種規范 接口的定義與特點 接口的格式如下&#xff1a; //接口用關鍵字interface來定義 public interface 接口名 {// 常量// 抽象方法 } JDK8之前接口中只能是抽象方法和常量&#xff0c;沒有其他成分了。 接口不能實例化。 接口中的成員都是public修…

webpack打包一個文件,做了哪些事情

用webpack打包一個文件&#xff0c;在webpack內部做了哪些事情&#xff0c;用代碼詳細介紹一下 當你使用 Webpack 打包一個文件時&#xff0c;Webpack 內部會進行一系列操作來實現模塊加載、代碼轉換、依賴分析、模塊打包等功能。以下是使用 Webpack 打包一個簡單 JavaScript …

svn介紹 4.0

一、svn介紹&#xff08;版本控制工具&#xff09; 1、svn的定義&#xff1a; svn是一個開放源代碼的版本控制系統&#xff0c;通過采用分支管理系統的高效管理&#xff0c;簡而言之就是用于多個人共同開發同一個項目&#xff0c;實現共享資源&#xff0c;實現最終集中式個管…

電腦數據丟失是什么原因 易我數據恢復軟件下載 easyrecovery數據恢復軟件下載 電腦數據刪除了怎么恢復 電腦數據庫損壞了怎么找回

目錄 一、電腦數據丟失是什么原因 二、電腦數據丟失如何恢復 三、EasyRecovery恢復電腦數據的方法介紹 電腦是我們大家熟悉并且常用的數據存儲設備&#xff0c;也是綜合性非常強的數據處理設備。對于電腦設備來講&#xff0c;最主要的數據存儲介質是硬盤&#xff0c;電腦硬…

CMU15445實驗總結(Spring 2023)

CMU15445實驗總結(Spring 2023) 背景 菜鳥博主是2024屆畢業生&#xff0c;學歷背景太差&#xff0c;導致23年秋招無果&#xff0c;準備奮戰春招。此前有讀過LevelDB源碼的經歷&#xff0c;對數據庫的了解也僅限于LevelDB。奔著”有對比才能學的深“的理念&#xff0c;以及緩解…

linux系統Jenkins工具配置webhook自動部署

Jenkins工具webhook自動部署 webhook自動部署webhook的意義操作流程jenkins頁面操作gitlab頁面操作 webhook自動部署 webhook的意義 自動化部署&#xff1a;Webhook 可以在代碼提交、合并請求或其他特定事件發生時自動觸發 Jenkins 構建和部署任務&#xff0c;從而實現自動化…

C#,K中心問題(K-centers Problem)的算法與源代碼

1 K中心問題&#xff08;K-centers Problem&#xff09; k-centers problem: 尋找k個半徑越小越好的center以覆蓋所有的點。 比如&#xff1a;給定n個城市和每對城市之間的距離&#xff0c;選擇k個城市放置倉庫&#xff08;或ATM或云服務器&#xff09;&#xff0c;以使城市…

【JavaEE進階】 Spring AOP源碼簡單剖析

文章目錄 &#x1f343;前言&#x1f340;Spring AOP源碼剖析?總結 &#x1f343;前言 前面的博客中&#xff0c;博主對代理模式進行了一個簡單的講解&#xff0c;接下來博主將對Spring AOP源碼進行簡單剖析&#xff0c;使我們對Spring AOP了解的更加深刻。 &#x1f340;Sp…