主頁 >  其他 > Mysql資料庫優化

Mysql資料庫優化

2020-10-07 10:46:54 其他

1.存盤引擎

什么是存盤引擎

存盤引擎:可以看作是資料表存盤資料的一種格式,不同的格式具有的特性也各不相同,
舉例說明:只有InnoDB存盤引擎支持事務、外鍵、行級鎖等特性,而MyISAM則支持壓碩訓制等特性,
存盤引擎的特點:本身是MySQL資料庫服務器的底層組件之一,最大的特點是采用“可插拔”的存盤引擎架構,
“可插拔”的理解:指的是對正在運行的MySQL服務器依然可根據實際需求使用特定陳述句加載(插入,INSTALL PLUGIN陳述句)或卸載(拔出,UNINSTALL PLUGIN陳述句)所需的存盤引擎檔案

存盤引擎的選擇

查看當前支持的存盤引擎
SHOW ENGINES;

執行以上SQL陳述句,運行的結果中含有6個欄位,.
Engine (存盤引擎)、Support (是否支持)
Comment (注釋說明)、Transactions (是否支持事務)
XA (是否支持分布式事務)和Savepoints ( 是否支持事務的保存點設定)

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

1. InnoDB存盤引擎

InnoDB存盤引擎:在MySQL 5.7版本中被指定為默認的存盤引擎,

特性:是MySQL中第一個提供外鍵約束的表引擎,尤其對事務處理的能力,是MySQL其他存盤引擎無法與之比擬的,
優勢:用于完成事務、回滾、崩潰修復和多版本并發控制的事務安全處理
缺點:讀寫效率一般

存盤模式
  • 存盤格式:默認InnoDB資料表都共用一個表空間檔案ibdata1,每張資料表都會在對應的資料庫下創建一個與表同名的結構檔案(資料庫/表名.frm)

ibdata1 的位置:通常位于data目錄下,與資料庫檔案處于同級目錄,
ibdata1 的作用:集中存盤資料和索引,

設定資料表的獨立表空間檔案:全域變數innodb_ file_ _per_ table

#查看默認是否共用同一個表空間檔案.
SHOW VARIABLES LIKE 'innodb_file_per_table';
#開啟每個表獨立的表空間檔案
SET GLOBAL innodb_file_per_table=ON;

例:
在這里插入圖片描述

2. MyISAM存盤引擎

MyISAM存盤引擎:在MySQL5.5以前的版本中是MySQL的默認存盤引擎,

特性:是基于ISAM存盤引擎發展起來的,不僅解決了ISAM的很多不足,還增加了很多有用的擴展,例如,資料的全文索引、壓縮與加密、支持復制與備份的恢復等,
優勢:與InnoDB相比,MyISAM的優點是處理速度快
缺點:InnoDB相比,MyISAM的缺點是不支持事務的完整性和并發性

MyISAM資料表的檔案擴展名分別為frm、myd和myi,檔案名與表名相同,

擴展名功能說明
frm用于存盤表的結構
myd用于存盤資料,是MYData的縮寫
myi用于存盤索引,是MYIndex的縮寫

MyISAM表的資料移植非常方便,只需將資料庫下表中對應的3個檔案復制到另一個資料庫下即可,

3. MRG_MYISAM存盤引擎

MRG_MYISAM存盤引擎:相同MyISAM存盤引擎表的集合,也被稱為MERGE,

特性:所有合并的表必須具有相同順序的欄位與索引的應用
優勢:可快速拆分大型只讀表,執行搜索效率更高等,
缺點:索引讀取速度較慢只針對MyISAM存盤引擎的表進行合并、實際應用較少等,

4. MEMORY存盤引擎

MEMORY存盤引擎:在是MySQL中一種特殊的存盤引擎,

特性:在MEMORY存盤引擎的表中,所有資料都保存在記憶體中,一旦程式出錯或服務器斷電都會導致資料的丟失,
優勢:資料的處理速度快
缺點:不適合持久保存資料,而且也不能存盤太大的資料
對讀寫速度快,資料量小、不需要持久保存的臨時資料是理想的選擇,

5. CSV是存盤引擎

CSV是存盤引擎:是采用文本方式存盤資料的一種存盤引擎,資料在檔案中通過逗號分隔保存,

結構:資料表會分為后綴frm(存盤表結構資訊)、csv(存盤表內容)和csm(存盤表的狀態、資料量等元資料)3個檔案存盤,檔案名與資料表名相同,
一是不支持索引和磁區,二是表中所有欄位必須含有NOT NULL屬性

6. ARCHIVE存盤引擎

ARCHIVE存盤引擎:適合保存數量龐大、長期維護但很少被訪問的資料,

特性:資料存盤時會用zlib壓縮庫進行壓縮,在記錄被請求時會實時進行解壓,
提示: ARCHIVE存盤引擎僅僅支持查詢和插入操作,并且因不支持資料索引,查詢效率較低,

7. BLACKHOLE存盤引擎

BLACKHOLE存盤引擎:被稱為“黑洞”存盤引擎,

特性:寫入的資料都會消失,就像被“黑洞”吞噬了一樣,
作用:利用此特性可以將其作為轉發器或過濾器
舉例:將主服務器中的大量資料經過過濾后搬到從服務器,可將BL ACKHOLE的資料表作為過濾器使用,且不會保存任何資料,但是會在二進制日志中記錄下所有SQL陳述句,然后可復制并執行這些陳述句,將結果保存到從服務器中,

8. PERFORMANCE_SCHEMA存盤引擎

PERFORMANCE_SCHEMA存盤引擎: MySQL .5.7中performance_ schema資料庫中所有資料表的存盤引擎,

特性:用戶不能為資料表創建此型別的存盤引擎,
作用:主要用于收集資料庫服務器性能引數

9. FEDERATED存盤引擎

FEDERATED存盤引擎:默認情況下在MySQL中不可用,

啟動:利用“–federated"選項,
特性:創建從遠程MySQL服務器訪問資料的表,本地的FEDERATED表只保存結構資訊(后綴為frm),遠程服務器同時要保存結構資訊和資料檔案,所有的增刪改查操作都通過訪問遠程服務器后,才將結果回傳給本地的服務器,

2.索引

1. 索引概述

索引:是一種特殊的資料結構,可以看做是利用MySQL提供的語法將資料表中的某個或某些欄位與記錄的位置建立一一個對應的關系,并按照一定的順序排序好,
且的:就是為了快速定位指定資料的位置,

2. 索引分類

普通索引:是MySQL 中的基本索引型別,使用KEYINDEX定義,不需要添加任何限制條件,作用是加快對資料的訪問速度,
唯一性索引:由UNIQUE INDEX定義,創建唯一性索引的欄位需要添加唯一性約束,用于防止用戶添加重復的值,
主鍵索引:由PRIMARY KEY定義的一種特殊的唯一性索引, 用于根據主鍵自身的唯一性標識每條記錄,防止添加主鍵索引的欄位值重復或為NULL,

  • 若在InnoDB表中資料保存的順序與主鍵索引欄位的順序一致時,可將這種主鍵索引稱為“聚簇索引”,一般聚簇索引指的都是表的主鍵
  • 一張資料表中只能有一個聚簇索引,

全文索引:由FULLTEXT INDEX定義,用于根據查詢字符提高資料量較大的欄位查詢速度,此索引在定義時欄位型別必須是CHAR、VARCHAR或TEXT中的一種,在MySQL 5.7版本中,僅MylSAM和InnoDB存盤引擎支持全文索引
空間索引:由SPATIAL INDEX定義在空間資料型別欄位上的索引,提高系統獲取空間資料的效率,僅MyISAM和InnoDB存盤引擎支持空間索引,還要保證創建索引的欄位不能為空,

根據創建索引的欄位個數,還可以將它們分為單列索引復合索引

  • 單列索引:指在表中單個欄位上創建的索引,可以是普通索引、唯一索引、主鍵索引或者全文索引,只要保證該索引對應表中一個欄位即可
  • 復合索引:是在表的多個欄位上創建一個索引,且只有在查詢條件中使用了這些欄位中的第一個欄位時,該索引才會被使用,

3. 索引的操作

創建索引
  • CREATE TABLE方式,與資料表同時創建,
#方式1: CREATE TABLE創建資料表時添加索引
CREATE TABLE資料表名(
欄位名資料型別[約束條件]
...
PRIMARY KEY [索引型別] (欄位串列)[索引選項],
{INDEX|KEY} [索引名稱] [索引型別] (欄位串列)[索引選項],
UNIQUE [INDEXIKEY] [索引名稱] [索引型別] (欄位串列)[索引選項],
{FULLTEXT|SPATIAL} [INDEX|KEY] [索引名稱] (欄位串列)[索引選項]
)[表選項];
  • ALTER TABLE方式,對已創建的資料表進行添加,
#方式2: ALTER TABLE向已創建的資料表添加索引
ALTER TABLE 資料表名
ADD PRIMARY KEY[索引型別] (欄位串列) [索引選項]
|ADD {INDEX|KEY} [索引名稱] [索引型別] (欄位串列) [索引選項]
|ADD UNIQUE [INDEX|KEY] [索引名稱] [索引型別] (欄位串列) [索引選項]
|ADD FULLTEXT [INDEX|KEY] [索引名稱] (欄位串列)[索引選項]
IADD SPATIAL [INDEX|KEY] [索引名稱] (欄位串列)[索引選項], ...;
  • CREATE INDEX方式,對已創建的資料表進行添加,不能添加主鍵索引,
#方式3: CREATE INDEX向已創建的資料表添加索引.
CREATE [UNIQUE|FULLTEXT|SPATIAL] INDEX 索引名稱
[索引型別] ON 資料表名(欄位串列)[索引選項][演算法選項|鎖選項]

索引可設定選項

索引選項語法
索引型別USING {BTREE | HASH}
欄位串列欄位[(長度)[ASC | DESC]]
索引選項KEY_BLOCK_SIZE [=]值|索引型別| WITH PARSER決議器插件名| COMMENT ‘描述資訊’
演算法選項ALGORITHM [=] {DEFAULT|INPLACE|COPY}
鎖選項LOCK [=] {DEFAULT|NONE|SHARED\IEXCLUSIVE}

主鍵索引不能設定索引名稱,其他索引的名稱也可以省略,默認使用建立索引的欄位表示,復合索引則使用第一個欄位的名稱作為索引名,

索引欄位資訊
欄位名稱描述
Non_unique索引是否可以重復,0表示不可以,1表示可以
Key_name索引的名字,如果索引是主鍵索引,則它的名字為PRIMARY
Seq_in_index建立索引的欄位序號值,默認從1開始
Column_name建立索引的欄位
Collation索引欄位是否有排序,A表示排序,NULL表示沒有排序
Cardinality計算MySQL連接時使用索引的可能性(精確度不高),值越大,可能性越高
Sub_part前綴索引的長度,如3,若欄位值都被索引則為NULL
Index_type索引型別,可選值有BTREE、FULLTEXT、 HASH、RTREE
Comment索引欄位的注釋資訊
Index_comment創建索引時添加的注釋資訊
欄位名稱描述
id查詢識別符號,默認從1開始,若使用了聯合查詢,則該值依次遞增,聯合查詢結果對應的該值為NULL
select_ type操作型別,如DELETE、UPDATE等,但是當執行SEL ECT陳述句時,它的值有多種,如SIMPLE表示不需聯合查詢或簡單的子查詢,
table輸出資料的表
partitions匹配的磁區
type連接的型別,如const使用了主鍵索引或唯一性索引,ref表示使用前綴索引或條件中含有運算子“=”或“<=>”等
key_ len索引欄位的長度
ref表示哪些欄位或常量與索引比較了比較,如const表示常量與索引進行了比較
rows預計需要檢索的記錄數
filtered按條件過濾的百分比
Extra附加資訊,如Using index表示使用了索引覆寫

所謂索引覆寫指的是查詢的欄位恰好是索引的一部分或與索引
完全一致,那么查詢只需要在索引區上進行,不需要到資料區
檢索資料的情況,
這種查詢的的特點是速度非常快,但同時也會增加索引檔案的
大小,只有此索引的使用率盡可能高的情況下,索引覆寫才有
意義,否則,在使用時應該避免此情況的發生,

洗掉索引

主鍵索引在洗掉時,需要考慮該主鍵欄位是否含有AUTO_INCREMENT屬性,若有則需在洗掉主鍵索引前洗掉該屬性,否則程式會報以下的錯誤提示資訊,
在這里插入圖片描述

  • 洗掉含有AUTO INCREMENT屬性的主鍵索引
#洗掉主鍵欄位的AUTO_ INCREMENT屬性
ALTER TABLE 資料表 MODIFY 欄位名欄位型別
#洗掉主鍵索引
ALTER TABLE 資料表 DROP PRIMARY KEYDROP INDEX'PRIMARY' ON 資料表

當使用DROP INDEX洗掉主鍵索引時,其后的PRIMARY由于是MySQL中的保留字,因此必須使用反引號(‘) 包裹,

洗掉命令:

#語法1
ALTER TABLE 資料表 DROP INDEX 索引名
#語法2
DROP INDEX 索引名 ON 資料表 [演算法選項][鎖選項]

例:
在這里插入圖片描述

3.鎖機制

簡單的說,鎖機制就是為了保證多用戶并發操作時,能使被操作的資料資源保持一致性的設計規則,

鎖的分類

表級鎖(如MyISAM、MEMORY存盤引擎)

表級鎖:是MySQL中鎖的作用范圍( 鎖的粒度)最大的一種鎖,
鎖定范圍:是用戶操作資源所在的整個資料表,
優勢:有效的避免了死鎖的發生,且具有加鎖速度快、消耗資源小的特點,
缺陷:因其鎖定的粒度大,在并發操作時發生鎖沖突的概率也大,

行級鎖(如InnoDB存盤引擎特殊)

行級鎖:是MySQL 中鎖的作用范圍最小的一種鎖,
鎖定范圍:僅鎖定用戶操作所涉及的記錄資源,
優勢:能減少鎖定資源的競爭,較高并發處理能力,提升系統的整體性能,
缺陷:因其鎖定的粒度過小,每次加鎖和解鎖所消耗的資源也會更多,發生死鎖的可能性更高,

根據鎖在MySQL中的狀態也可將其分為“隱式”與“顯式”:

  • “隱式”鎖指的是MySQL服務器本身對資料資源的爭用進行管理,它完全由服務器自動執行,
  • “顯式”鎖指的是用戶根據實際需求,對操作的資料顯式的添加鎖,同樣在使用完資料資源后也需要用戶對其進行解鎖,

表級鎖

表級鎖:根據操作的不同可以分為讀鎖和寫鎖,
讀鎖:表示用戶讀取(如SELECT查詢)資料資源時添加的鎖,其他用戶不可修改或增加資料資源,但是可以讀取該資料資源,因此讀鎖也可稱為共享鎖
寫鎖:表示用戶對資料資源執行寫(如INSERT、UPDATE、DELETE等)操作時添加的鎖,除了當前添加寫鎖的用戶外,其他用戶都不能對其進行讀/寫操作,因此寫鎖也可以稱為排他鎖獨占鎖

MyISAM存盤引擎表:是MySQL 資料庫中最典型的表級鎖,
“隱式”讀的表級鎖:當用戶對MyISAM存盤引擎表執行SELECT查詢操作前,服務器會“自動”地為其添加-一個表級的讀鎖,
“隱式”寫的表級鎖:執行INSERT、 UPDATE、DELETE等寫操作前,服務器會“自動”地為其添加一個表級的寫鎖,

“隱式”讀的表級鎖與“隱式”寫的表級鎖添加的優先級順序:

  • 默認服務器“自動”添加“隱式”鎖時,表的更新操作優先于表的查詢操作,.
  • 添加寫鎖時,若表中沒有任何鎖則添加,否則將其插入到寫鎖等待的佇列中,
  • 添加讀鎖時,若表中沒有寫鎖則添加,否則將其插入到讀鎖等待的佇列中,

表級鎖語法:

LOCK TABLES 資料表名 READ [LOCAL]| WRITE,...
  • LOCK TABLES可以同時鎖定多張資料表,
  • READ表示表級的讀鎖,添加此鎖的用戶可讀但不能寫,其他用戶可以讀取,執行寫操作會進入等待佇列,
  • WRITE表示表級的寫鎖,添加此鎖的用戶可執行讀/寫操作,在釋放鎖之前,不允許其他用戶訪問與操作,

表級鎖的問題:鎖定的粒度大,多用戶訪問會造成鎖競爭,降低并發處理能力,
從資料庫優化的角度來考慮:盡量減少表級鎖定時間,提高多用戶的并發能力,.
如何釋放“顯式”表級鎖: UNLOCK TABLES陳述句

行級鎖

InnoDB存盤引擎的鎖機制相對于MyISAM存盤引擎的鎖復雜一些,
InnoDB存盤引擎既有表級鎖又有行級鎖
InnoDB表級鎖的應用與MyISAM表級鎖的相同,
“隱式”行級排他鎖:當用戶對InnoDB存盤引擎表執行INSERT、UPDATE、DELETE等寫操作前,服務器會“自動”地為通過索引條件檢索的記錄添加行級排他鎖,
“隱式”行級排他鎖要如何解鎖:直到操作陳述句執行完畢,服務器再“自動”地為其解鎖,
“隱式”行級排他鎖的生命周期:陳述句的執行時間可以看作是“隱式”行級鎖的生命周期,且該生命周期的持續時間–般都比較短暫,
延長“隱式”行級排他鎖的生命周期:通常情況下,若要增加行級鎖的生命周期,最常使用的方式是事務處理,讓其在事務提交或回滾后再釋放行級鎖,使行級鎖的生命周期與事務的相同,

對于InnoDB表來說,若要保證當前事務中查詢出的資料不會被其他事務更新或洗掉,利用普通的SELECT陳述句是無法辦到的,此時需要利用MySQL提供的“鎖定讀取”的方式為查詢操作顯式的添加行級鎖,

SELECT 陳述句 FOR UPDATE|LOCK IN SHARE MODE
# FOR UPDATE:表示在查詢時添加行級排他鎖
# LOCK IN SHARE MODE:表示在查詢時添加行級共享鎖

用戶在向InnoDB表顯式添加行級鎖時,InnoDB存盤引擎首先會“自動”地向此表添加一個意向鎖,然后再添加行級鎖

  • 意向鎖是一個隱式的表級鎖,多個意向鎖之間不會產生沖突且互相兼容
  • 意向鎖是由MySQL服務器根據行級鎖是共享鎖還是排他鎖,自動添加意向共享鎖或意向排他鎖,不能人為干預
  • 意向鎖的作用:就是標識表中的某些記錄正在被鎖定或其他用戶將要鎖定表中的某些記錄,相對行級鎖,意向鎖的鎖定粒度更大,用于在行級鎖中添加表級鎖時判斷它們之間是否能夠互相兼容
  • 好處:就是大大節約了存盤引擎對鎖處理的性能,更加方便的解決了行級鎖與表級鎖之間的沖突,

表級的共享/排他鎖與意共享排他鎖之間的兼容性關系

表級的共享/排他鎖與意共享排他鎖之間的兼容性關系

默認當InnoDB處于REPEATABLE READ (可重復讀)的隔離級別時,行級鎖實際上是一個next-key鎖,它是由間隙鎖(gap lock)和記錄鎖(record lock)組成,

  • 記錄鎖(record lock)就是前面講解的行鎖,
  • 間隙鎖(gap lock)指的是在記錄索引之間的間隙、負無窮到第1個索引記錄之間或最后1個索引記錄到正無窮之間添加的鎖,

4.分表技術

分表技術: 將單張資料表根據不同的需求進行拆分,從而達到分散單表壓力的目的,提升資料庫的訪問性能,

分表分類

水平分表:將一張資料表中的全部記錄分別存盤到多張資料表中,因此水平分表在創建時,必須保證各資料表涉及到的欄位全部相同
水平分表使單張表的資料能夠保持在一定的量級,

  • 優勢:在操作時又因其表結構完全相同,只需增加獲取對應分表名稱的運算,就可以提高系統的穩定性和負載能力,
  • 缺點:水平分表使得資料分散存盤,加大了資料維護難度,

垂直分表:將同一個業務的不同欄位分別存盤到多張資料表中,因此垂直分表在創建時,各資料表僅通過一個欄位進行連接,其他欄位都不相同

  • 垂直分表后業務邏輯更加的清晰,方便資料進行整合與擴展,還可以根據實際需求實作動靜分離,為各分表選擇不同的存盤引擎(如查詢操作多可以使用MyISAM等),
  • 缺點:需要管理冗余欄位、查詢所有資料需要進行連接

5.磁區技術

磁區概述

磁區技術:就是在操作資料表時可以根據給定的演算法,將資料在邏輯上分到多個區域中存盤,在磁區中還可以設定子磁區,將資料存放到更加具體的區域內,

  • 磁區技術可以使一張資料表中的資料存盤在不同的物理磁盤中,相比單個磁盤或檔案系統能夠存盤更多的資料,實作更高的查詢吞吐量
  • 若在WHERE子句中包含磁區條件,系統只需掃描相關的一個或多個磁區而不用全表掃描,從而提高查詢效率,
  • 同一個磁區表的所有磁區必須使用相同存盤引擎,當建表時未指定存盤引擎,在創建磁區時必須設定存盤引擎,

磁區操作

CREATE TABLE 資料表名稱
[(欄位與索引串列)][表選項]
PARTITION BY 磁區演算法(磁區欄位)[PARTITIONS磁區數量]
[SUBPARTITION BY子磁區演算法(子磁區欄位)[SUBPARTITIONS子磁區數量]]
[(
PARTITION磁區名[VALUES][其他選項][(SUBPARTITION 子磁區名 [其他選項])],
...
)];

磁區是在表選項后添加PARTITION BY實作,
一個表最多僅可以創建1024個磁區,
磁區演算法有4種,分別為LIST、RANGE、HASH和KEY,

創建list磁區

在這里插入圖片描述

磁區創建完成后,會在資料檔案data/mydb目錄下看到對應的磁區資料檔案
p_list#p#p1.idb
p_list#p#p2.idb

創建hash磁區

在這里插入圖片描述

使用HASH演算法為p_hash表創建了3個磁區,磁區檔案的序號默認從0開始,當有多個磁區時依次遞增加1,例如,以上創建的磁區序號依次為0、1和2,

#已創建的資料表沒有創建磁區,添加磁區的方式
ALTER TABLE資料表名稱PARTITION BY磁區演算法...;
#已創建的資料表含有磁區,添加磁區的方式
#LIST或RANGE磁區
ALTER TABLE資料表名稱ADD PARTITION (磁區選項,..;, .
#HASH或KEY磁區
ALTER TABLE資料表名稱PARTITIONS 數量;

在這里插入圖片描述

#洗掉HASH、KEY磁區
ALTER TABLE資料表名稱COALESCE PARTITION數量;
#洗掉RANGE、LIST磁區
ALTER TABLE資料表名稱DROP PARTITION磁區名稱; .
  • 洗掉HASH與KEY演算法磁區時,會將該磁區內的資料重新整合到剩余的磁區,
  • 洗掉RANGE與LIST演算法磁區時,會同時洗掉磁區中保存的資料,
  • 當資料表的磁區僅剩一個時,不能通過以上的方式洗掉,只能利用DROP TABLE的方式洗掉表,

若在開發中僅要清空各磁區表中的資料,不洗掉對應的磁區檔案,可以使用以下的陳述句實作,

ALTER TABLE 資料表名稱 TRUNCATE PARTITION{磁區名稱|ALL}

6.資料碎片與維護

在MySQL資料庫中,DELETE洗掉一條記錄時,僅洗掉了資料表中保存的資料,而記錄占用的存盤空間會被保留
長期洗掉資料、添加資料的程序中,索引檔案和資料檔案都將產生“空洞”,形成很多不連續的碎片,造成資料表占用空間變大,但表中記錄數卻很少的情況發生,

修復資料表的資料及索引碎片時,會把所有的資料檔案重新整理一遍,因此,若資料表的記錄數比較大,也會消耗一定的資源,所以不能頻繁的對資料碎片進行維護,可根據實際的情況按周、月或季度等進行操作,.

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

標籤:其他

上一篇:2020年最新面試復盤大全+決議:資料庫+分布式+微服務+Redis+ZK+Nginx

下一篇:網路資訊安全(二)——ARP攻擊實驗演示(如何優雅切斷別人網路)

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

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 2023年最新微信小程式抓包教程

    01 開門見山 隔一個月發一篇文章,不過分。 首先回顧一下《微信系結手機號資料庫被脫庫事件》,我也是第一時間得知了這個訊息,然后跟蹤了整件事情的經過。下面是這起事件的相關截圖以及近日流出的一萬條資料樣本: 個人認為這件事也沒什么,還不如關注一下之前45億快遞資料查詢渠道疑似在近日復活的訊息。 訊息是 ......

    uj5u.com 2023-04-20 08:48:24 more
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:47:46 more
  • vulnhub_Earth

    前言 靶機地址->>>vulnhub_Earth 攻擊機ip:192.168.20.121 靶機ip:192.168.20.122 參考文章 https://www.cnblogs.com/Jing-X/archive/2022/04/03/16097695.html https://www.cnb ......

    uj5u.com 2023-04-20 07:46:20 more
  • 從4k到42k,軟體測驗工程師的漲薪史,給我看哭了

    清明節一過,盲猜大家已經無心上班,在數著日子準備過五一,但一想到銀行卡里的余額……瞬間心情就不美麗了。最近,2023年高校畢業生就業調查顯示,本科畢業月平均起薪為5825元。調查一出,便有很多同學表示自己又被平均了。看著這一資料,不免讓人想到前不久中國青年報的一項調查:近六成大學生認為畢業10年內會 ......

    uj5u.com 2023-04-20 07:44:00 more
  • 最新版本 Stable Diffusion 開源 AI 繪畫工具之中文自動提詞篇

    🎈 標簽生成器 由于輸入正向提示詞 prompt 和反向提示詞 negative prompt 都是使用英文,所以對學習母語的我們非常不友好 使用網址:https://tinygeeker.github.io/p/ai-prompt-generator 這個網址是為了讓大家在使用 AI 繪畫的時候 ......

    uj5u.com 2023-04-20 07:43:36 more
  • 漫談前端自動化測驗演進之路及測驗工具分析

    隨著前端技術的不斷發展和應用程式的日益復雜,前端自動化測驗也在不斷演進。隨著 Web 應用程式變得越來越復雜,自動化測驗的需求也越來越高。如今,自動化測驗已經成為 Web 應用程式開發程序中不可或缺的一部分,它們可以幫助開發人員更快地發現和修復錯誤,提高應用程式的性能和可靠性。 ......

    uj5u.com 2023-04-20 07:43:16 more
  • CANN開發實踐:4個DVPP記憶體問題的典型案例解讀

    摘要:由于DVPP媒體資料處理功能對存放輸入、輸出資料的記憶體有更高的要求(例如,記憶體首地址128位元組對齊),因此需呼叫專用的記憶體申請介面,那么本期就分享幾個關于DVPP記憶體問題的典型案例,并給出原因分析及解決方法。 本文分享自華為云社區《FAQ_DVPP記憶體問題案例》,作者:昇騰CANN。 DVPP ......

    uj5u.com 2023-04-20 07:43:03 more
  • msf學習

    msf學習 以kali自帶的msf為例 一、msf核心模塊與功能 msf模塊都放在/usr/share/metasploit-framework/modules目錄下 1、auxiliary 輔助模塊,輔助滲透(埠掃描、登錄密碼爆破、漏洞驗證等) 2、encoders 編碼器模塊,主要包含各種編碼 ......

    uj5u.com 2023-04-20 07:42:59 more
  • Halcon軟體安裝與界面簡介

    1. 下載Halcon17版本到到本地 2. 雙擊安裝包后 3. 步驟如下 1.2 Halcon軟體安裝 界面分為四大塊 1. Halcon的五個助手 1) 影像采集助手:與相機連接,設定相機引數,采集影像 2) 標定助手:九點標定或是其它的標定,生成標定檔案及內參外參,可以將像素單位轉換為長度單位 ......

    uj5u.com 2023-04-20 07:42:17 more
  • 在MacOS下使用Unity3D開發游戲

    第一次發博客,先發一下我的游戲開發環境吧。 去年2月份買了一臺MacBookPro2021 M1pro(以下簡稱mbp),這一年來一直在用mbp開發游戲。我大致分享一下我的開發工具以及使用體驗。 1、Unity 官網鏈接: https://unity.cn/releases 我一般使用的Apple ......

    uj5u.com 2023-04-20 07:40:19 more