7、【強制】如果存儲的字符串長度幾乎相等,使用 char定長字符串類型
8、【強制】varchar是可變長字符串,不預先分配存儲空間,長度不要超過 5000,如果存儲長度大于此值,定義字段類型為 text,獨立出來一張
表,用主鍵來對應,避免影響其它字段索引效率。
9、【強制】表必備三字段:id,create_time,update_time.
說明:其中 id 必為主鍵,類型為 bigint unsigned、單表時自增、步長為1。create_time,update_time的類型均為 datetime 類型。
數(shù)據(jù)的創(chuàng)建時間和數(shù)據(jù)的修改時間,分別代表這條數(shù)據(jù)什么時間創(chuàng)建什么時間修改;id是作為數(shù)據(jù)庫一定遵守設計范式第一范式就是必須有主鍵代表數(shù)據(jù)的唯一值。
10、【推薦】表的命名最好是遵循“業(yè)務名稱_表的作用”
正例:alipay_task/force_project/trade_config
11、【推薦】庫名與應用名稱盡量一致。
12、【推薦】如果修改字段含義或?qū)ψ侄伪硎镜臓顟B(tài)追加時,需要及時更新字段注釋。
13、【推薦】字段允許適當幾余,以提尚直間能,但必須考慮數(shù)據(jù)一致。
冗余字段應遵循
1)不是頻繁修改的字段。
2)不是 varchar 超長字段,更不能是 text 字段。
3)不是唯一索引的字段。
正例:商品類目名稱使用頻率高,字段長度短,名稱基本一不變,可在相關聯(lián)的表中冗余存儲類目名稱,避免關聯(lián)查詢。
14、【推薦】單表行數(shù)超過 500萬行或者單表容量超過 2GB,才推薦進行分庫分表說明:如果預計三年后的數(shù)據(jù)量根本達不到這個級別,請不要在創(chuàng)建
表時就分庫分表。
15、【參考】合適的字符存儲長度,不但節(jié)約數(shù)據(jù)庫表空間、節(jié)約索引存儲,更重要的是提升檢索速度。
正例:如下表,其中無符號值可以避免誤存負數(shù),且擴大了表示范圍。
(二)索引規(guī)約
1、【強制】業(yè)務上具有唯一特性的字段,即使是多個字段的組合,也必須建成唯一索引
說明:不要以為唯一索引影響了 insert 速度,這個速度損耗可以忽略,但提高查找速度是明顯的;另外即使在應用層做了非常完善的校驗控制,只要沒有唯一索引,根
據(jù)墨菲定律,必然有臟數(shù)據(jù)產(chǎn)生。
2、【強制】超過三個表禁止join。需要join 的字段,數(shù)據(jù)類型必須絕對一致;多表關聯(lián)查詢時,保證被關聯(lián)的字段需要有索引。
說明:即使雙表join 也要注意表索引、SOL性能。
3、【強制)在 varchar字段上建立索引時,必須指定索引長度,沒必要對全字段建立索引,根據(jù) 實際文本區(qū)分度決定索引長度即可。
說明:索引的長度與區(qū)分度是一對矛盾體,一般對字符串類型數(shù)據(jù),長度為20的索引,區(qū)分度會高達 90%以上,可以使用 count(distinct left(列名,索引長
度))/count(*)的區(qū)分度來確定。
4、【強制】頁面搜索嚴禁左模糊或者全模糊,如果需要請走搜索引擎來解決
說明:索引文件具有 B-Tree 的最左前綴匹配特性,如果左邊的值未確定,那么無法使用此索引。
5、【推薦】如果有 order by的場景,請注意利用索引的有序性。order by 最后的字段是組合索引的一部分,并且放在索引組合順序的最后,避免出
現(xiàn) file_sort 的情況,影響查詢性能。
正例:where a=? and b=? order by c;索引:a_b_c
反例:索引如果存在范圍查詢,那么索引有序性無法利用,如:WHERE a>10 ORDER BY b;索引a_b無法排序。
6、【推薦】利用覆蓋索引來進行查詢操作,避免回表。
說明:如果一本書需要知道第 11 章是什么標題,會翻開第 11 章對應的那一頁嗎?目錄瀏覽一下就好,這個目錄就是起到覆蓋索引的作用。
正例:能夠建立索引的種類分為主鍵索引、唯一索引、普通索引三種,而覆蓋索引只是一種查詢的一種效果,用 explain 的結(jié)果,extra 列會出現(xiàn):using index。
7.【推薦】利用延遲關聯(lián)或者子查詢優(yōu)化超多分頁場景。
說明:MySOL并不是跳過offset行,而是取 offset+N行,然后返回放棄前 offset行,返回N行,那當offset 特別大的時候,效率就非常的低下,要么控制返回的總頁
數(shù),要么對超過特定閾值的頁數(shù)進行 SOL改寫。
正例:先快速定位需要獲取的id 段,然后再關聯(lián):
SELECT a.*FROM 表1a,(selectid from 表1 where 條件 LMIT 100000,20)b where a.id=b.id
8、【推薦】SQL性能優(yōu)化的目標:至少要達到 range 級別,要求是ref級別,如果可以是consts最好。
說明:
- consts 單表中最多只有一個匹配行(主鍵或者唯一索引),在優(yōu)化階段即可讀取到數(shù)據(jù)。
- ref 指的是使用普通的索引(normal index)。
- range 對索引進行范圍檢索。
反例:explain 表的結(jié)果,type=index,索引物理文件全掃描,速度非常慢,這個index 級別比較 range還低,與全表掃描是小巫見大巫。
9、【推薦】建組合索引的時候,區(qū)分度最高的在最左邊。
正例:如果 where a=?and b=?,如果a列的幾乎接近于唯一值,那么只需要單建 idx_a索引即可。
說明:存在非等號和等號混合時,在建索引時,請把等號條件的列前置。如:where c>?and d=?那么即使c的區(qū)分度更高,也必須把d放在索引的最前列,即索引idx_d_c。
10、【推薦】防止因字段類型不同造成的隱式轉(zhuǎn)換,導致索引失效。
(三)sql語句
1、【強制】不要使用 count(列名)或 count(常量)來替代 count(),count()是SQL92 定義的標準統(tǒng)計行數(shù)的語法,跟數(shù)據(jù)庫無關,跟 NULL和非 NULL 無
關。
說明:count(*)會統(tǒng)計值為 NULL的行,而 count(列名)不會統(tǒng)計此列為 NULL 值的行。
2、【強制】count(distinct col)計算該列除 NULL之外的不重復行數(shù),注意 count(distinct col1, co12)如果其中一列全為 NULL,那么即使另一列有不同的值,
也返回為 0。
3、【強制】當某一列的值全是NULL時,count(col)的道回結(jié)果為 0sum(col)的返回結(jié)果為 NULL,因此使用 sum()時需注意 NPE 問題。
正例:使用如下方式來避免 sum 的 NPE問題:SELECT IFNULL(SUM(column),0) FROM table;NPE:NullPointerException 編程語言中的空指針異常。
4、【強制】使用 ISNULL()來判斷是否為 NULL值。
說明:NULL與任何值的直接比較都為 NULL。
1)NULL<>NULL的返回結(jié)果是 NULL,而不是 false。
2)NULL=NULL的返回結(jié)果是 NULL,而不是 true。
3)NULL<>1 的返回結(jié)果是 NULL,而不是 true
5、【強制】代碼中寫分頁查詢邏輯時,若count為0應直接返回,避免執(zhí)行后面的分頁語句。
6、【強制】不得使用外鍵與級聯(lián),一切外鍵概念必須在應用層解決。
7、【強制】禁止使用存儲過程,存儲過程難以調(diào)試和擴展,更沒有移植性,
8、【強制】數(shù)據(jù)訂正(特別是刪除、修改記錄操作)時,要先select,避免出現(xiàn)誤刪除,確認無S誤才能執(zhí)行更新語句。
9、【推薦】in 操作能避免則避免,若實在避免不了需要仔細評估 in 后邊的集合元素數(shù)量,控制在 1000 個之內(nèi)。
關于in的使用場景,很多人做了測試,結(jié)論大概是,需要where in(xxx),in里的數(shù)據(jù)量多的時候,推薦用exists代替in??赡苁前⒗飻?shù)據(jù)一般都很多,數(shù)據(jù)量少in也
沒什么性能損耗索性嚴格要求exists了。
10、【參考】如果有國際化需要,所有的字符存儲與表示,均以 utf-8編碼,注意字符統(tǒng)計函數(shù) 的區(qū)別。
自我介紹一下,小編13年上海交大畢業(yè),曾經(jīng)在小公司待過,也去過華為、OPPO等大廠,18年進入阿里一直到現(xiàn)在。
深知大多數(shù)網(wǎng)絡安全工程師,想要提升技能,往往是自己摸索成長,但自己不成體系的自學效果低效又漫長,而且極易碰到天花板技術停滯不前!
因此收集整理了一份《2024年網(wǎng)絡安全全套學習資料》,初衷也很簡單,就是希望能夠幫助到想自學提升又不知道該從何學起的朋友。
既有適合小白學習的零基礎資料,也有適合3年以上經(jīng)驗的小伙伴深入學習提升的進階課程,基本涵蓋了95%以上網(wǎng)絡安全知識點,真正體系化!
由于文件比較大,這里只是將部分目錄大綱截圖出來,每個節(jié)點里面都包含大廠面經(jīng)、學習筆記、源碼講義、實戰(zhàn)項目、講解視頻,并且后續(xù)會持續(xù)更新
如果你覺得這些內(nèi)容對你有幫助,可以添加VX:vip204888 (備注網(wǎng)絡安全獲?。?/strong>
如何自學黑客&網(wǎng)絡安全
黑客零基礎入門學習路線&規(guī)劃
初級黑客
1、網(wǎng)絡安全理論知識(2天)
①了解行業(yè)相關背景,前景,確定發(fā)展方向。
②學習網(wǎng)絡安全相關法律法規(guī)。
③網(wǎng)絡安全運營的概念。
④等保簡介、等保規(guī)定、流程和規(guī)范。(非常重要)
2、滲透測試基礎(一周)
①滲透測試的流程、分類、標準
②信息收集技術:主動/被動信息搜集、Nmap工具、Google Hacking
③漏洞掃描、漏洞利用、原理,利用方法、工具(MSF)、繞過IDS和反病毒偵察
④主機攻防演練:MS17-010、MS08-067、MS10-046、MS12-20等
3、操作系統(tǒng)基礎(一周)
①Windows系統(tǒng)常見功能和命令
②Kali Linux系統(tǒng)常見功能和命令
③操作系統(tǒng)安全(系統(tǒng)入侵排查/系統(tǒng)加固基礎)
4、計算機網(wǎng)絡基礎(一周)
①計算機網(wǎng)絡基礎、協(xié)議和架構
②網(wǎng)絡通信原理、OSI模型、數(shù)據(jù)轉(zhuǎn)發(fā)流程
③常見協(xié)議解析(HTTP、TCP/IP、ARP等)
④網(wǎng)絡攻擊技術與網(wǎng)絡安全防御技術
⑤Web漏洞原理與防御:主動/被動攻擊、DDOS攻擊、CVE漏洞復現(xiàn)
5、數(shù)據(jù)庫基礎操作(2天)
①數(shù)據(jù)庫基礎
②SQL語言基礎
③數(shù)據(jù)庫安全加固
6、Web滲透(1周)
①HTML、CSS和JavaScript簡介
②OWASP Top10
③Web漏洞掃描工具
④Web滲透工具:Nmap、BurpSuite、SQLMap、其他(菜刀、漏掃等)
恭喜你,如果學到這里,你基本可以從事一份網(wǎng)絡安全相關的工作,比如滲透測試、Web 滲透、安全服務、安全分析等崗位;如果等保模塊學的好,還可以從事等保工程師。薪資區(qū)間6k-15k
到此為止,大概1個月的時間。你已經(jīng)成為了一名“腳本小子”。那么你還想往下探索嗎?
如果你想要入坑黑客&網(wǎng)絡安全,筆者給大家準備了一份:282G全網(wǎng)最全的網(wǎng)絡安全資料包評論區(qū)留言即可領取!
7、腳本編程(初級/中級/高級)
在網(wǎng)絡安全領域。是否具備編程能力是“腳本小子”和真正黑客的本質(zhì)區(qū)別。在實際的滲透測試過程中,面對復雜多變的網(wǎng)絡環(huán)境,當常用工具不能滿足實際需求的時候,往往需要對現(xiàn)有工具進行擴展,或者編寫符合我們要求的工具、自動化腳本,這個時候就需要具備一定的編程能力。在分秒必爭的CTF競賽中,想要高效地使用自制的腳本工具來實現(xiàn)各種目的,更是需要擁有編程能力.
如果你零基礎入門,筆者建議選擇腳本語言Python/PHP/Go/Java中的一種,對常用庫進行編程學習;搭建開發(fā)環(huán)境和選擇IDE,PHP環(huán)境推薦Wamp和XAMPP, IDE強烈推薦Sublime;·Python編程學習,學習內(nèi)容包含:語法、正則、文件、 網(wǎng)絡、多線程等常用庫,推薦《Python核心編程》,不要看完;·用Python編寫漏洞的exp,然后寫一個簡單的網(wǎng)絡爬蟲;·PHP基本語法學習并書寫一個簡單的博客系統(tǒng);熟悉MVC架構,并試著學習一個PHP框架或者Python框架 (可選);·了解Bootstrap的布局或者CSS。
8、超級黑客
這部分內(nèi)容對零基礎的同學來說還比較遙遠,就不展開細說了,附上學習路線。
網(wǎng)絡安全工程師企業(yè)級學習路線
如圖片過大被平臺壓縮導致看不清的話,評論區(qū)點贊和評論區(qū)留言獲取吧。我都會回復的
視頻配套資料&國內(nèi)外網(wǎng)安書籍、文檔&工具
當然除了有配套的視頻,同時也為大家整理了各種文檔和書籍資料&工具,并且已經(jīng)幫大家分好類了。
一些筆者自己買的、其他平臺白嫖不到的視頻教程。
一個人可以走的很快,但一群人才能走的更遠。如果你從事以下工作或?qū)σ韵赂信d趣,歡迎戳這里加入程序員的圈子,讓我們一起學習成長!文章來源:http://www.zghlxwxcb.cn/news/detail-846302.html
AI人工智能、Android移動開發(fā)、AIGC大模型、C C#、Go語言、Java、Linux運維、云計算、MySQL、PMP、網(wǎng)絡安全、Python爬蟲、UE5、UI設計、Unity3D、Web前端開發(fā)、產(chǎn)品經(jīng)理、車載開發(fā)、大數(shù)據(jù)、鴻蒙、計算機網(wǎng)絡、嵌入式物聯(lián)網(wǎng)、軟件測試、數(shù)據(jù)結(jié)構與算法、音視頻開發(fā)、Flutter、IOS開發(fā)、PHP開發(fā)、.NET、安卓逆向、云計算文章來源地址http://www.zghlxwxcb.cn/news/detail-846302.html
一個人可以走的很快,但一群人才能走的更遠。如果你從事以下工作或?qū)σ韵赂信d趣,歡迎戳這里加入程序員的圈子,讓我們一起學習成長!
AI人工智能、Android移動開發(fā)、AIGC大模型、C C#、Go語言、Java、Linux運維、云計算、MySQL、PMP、網(wǎng)絡安全、Python爬蟲、UE5、UI設計、Unity3D、Web前端開發(fā)、產(chǎn)品經(jīng)理、車載開發(fā)、大數(shù)據(jù)、鴻蒙、計算機網(wǎng)絡、嵌入式物聯(lián)網(wǎng)、軟件測試、數(shù)據(jù)結(jié)構與算法、音視頻開發(fā)、Flutter、IOS開發(fā)、PHP開發(fā)、.NET、安卓逆向、云計算
到了這里,關于JAVA編碼規(guī)范:安全規(guī)約、mysql數(shù)據(jù)庫_java后端的sql編碼規(guī)范的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!