Java程序員日常積累-向大神學(xué)習(xí)(一)

      網(wǎng)友投稿 658 2022-05-30

      --ping端口需要裝服務(wù)telnet命令

      --、面試題:MySQL性能調(diào)優(yōu)——索引詳解與索引的優(yōu)化

      ~、索引優(yōu)化,可以說是數(shù)據(jù)庫相關(guān)優(yōu)化、理解尤其是查詢優(yōu)化中最常用的優(yōu)化手段之一。

      所以,只有深入索引的實(shí)現(xiàn)原理、存儲方式、不同索引間區(qū)別,才能設(shè)計(jì)或使用最優(yōu)的索引,最大幅度的提升查詢效率!

      ~、BTree索引:使用最頻繁的索引類型

      MyISAM引擎索引結(jié)構(gòu):存放的并不是實(shí)際的數(shù)據(jù)記錄,而是數(shù)據(jù)記錄的地址。

      特點(diǎn):不支持事務(wù)、只支持表級鎖、不支持外鍵、保存數(shù)據(jù)庫表中表的具體行數(shù)

      InnoDB引擎索引結(jié)構(gòu):存放的就是實(shí)際的數(shù)據(jù)記錄

      四大特性:事務(wù)性存儲引擎、支持ACID特性、INNODB 支持行級鎖、innodb 狀態(tài)檢查

      應(yīng)用場景:innodb 適合大多數(shù)的OLTP應(yīng)用,支持全文索引和空間函數(shù)

      MySQL的存儲引擎InnoDB使用重做日志(redo log)保證一致性與持久性,回滾日志(undo log)保證原子性,使用各種鎖來保證隔離性。

      ~、Hash索引:使用Hash索引的數(shù)據(jù)庫并不多

      優(yōu)點(diǎn):索引的檢索效率非常高,可以一次定位,不像B-Tree索引需要進(jìn)行從根節(jié)點(diǎn)到葉節(jié)點(diǎn)的多次IO操作。

      缺點(diǎn):1、Hash索引僅僅能滿足等值的查詢,范圍查詢不保證結(jié)果正確

      2、Hash索引不能被排序

      3、Hash索引不能避免表數(shù)據(jù)的掃描

      4、Hash索引在發(fā)生大量Hash值相同的情況時(shí)性能不一定比B-Tree索引高

      5、Hash索引不能使用部分索引鍵查詢

      ~、Full-Text索引:

      目前MySQL中只有MyISAM存儲引擎支持,并且只有CHAR、VARCHAR、TEXT類型支持。

      判斷是否應(yīng)該建索引的條件

      1、較頻繁的作為查詢條件的字段應(yīng)該創(chuàng)建索引

      2、唯一性太差的字段不適合單獨(dú)創(chuàng)建索引,即使頻繁作為查詢條件

      3、增、刪、改操作較多的數(shù)據(jù)庫字段不適合建索引

      --、遇到程序報(bào)錯(cuò)要知道兩個(gè)問題:

      1、在哪報(bào)錯(cuò)?

      2、報(bào)什么錯(cuò)?

      --、MySQL數(shù)據(jù)庫查看大小

      //各個(gè)數(shù)據(jù)大小 數(shù)據(jù)單位M

      select table_schema ,round(sum(data_length/1024/1024),2) as size from information_schema.tables group by table_schema order by size desc;

      //數(shù)據(jù)庫整個(gè)大小,單位M

      select round(sum(data_length/1024/1024),2) as size?from ?information_schema.tables;

      --、是否應(yīng)該使用 MongoDB?

      *、應(yīng)用不需要事務(wù)及復(fù)雜 join 支持

      *、新應(yīng)用,需求會變,數(shù)據(jù)模型無法確定,想快速迭代開發(fā)

      *、應(yīng)用需要2000-3000以上的讀寫QPS(更高也可以)

      *、應(yīng)用需要TB甚至 PB 級別數(shù)據(jù)存儲

      *、應(yīng)用發(fā)展迅速,需要能快速水平擴(kuò)展

      *、應(yīng)用要求存儲的數(shù)據(jù)不丟失

      *、應(yīng)用需要99.999%高可用

      *、應(yīng)用需要大量的地理位置查詢、文本查詢

      如果上述有1個(gè)符合,可以考慮 MongoDB,2個(gè)及以上的符合,選擇 MogoDB 絕不會后悔。

      --、MongoDB 比較適用哪些業(yè)務(wù)場景?

      *、游戲場景,使用 MongoDB 存儲游戲用戶信息,用戶的裝備、積分等直接以內(nèi)嵌文檔的形式存儲,方便查詢、更新

      *、物流場景,使用 MongoDB 存儲訂單信息,訂單狀態(tài)在運(yùn)送過程中會不斷更新,以 MongoDB

      內(nèi)嵌數(shù)組的形式來存儲,一次查詢就能將訂單所有的變更讀取出來。

      *、社交場景,使用 MongoDB 存儲存儲用戶信息,以及用戶發(fā)表的朋友圈信息,通過地理位置索引實(shí)現(xiàn)附近的人、地點(diǎn)等功能

      *、物聯(lián)網(wǎng)場景,使用 MongoDB 存儲所有接入的智能設(shè)備信息,以及設(shè)備匯報(bào)的日志信息,并對這些信息進(jìn)行多維度的分析

      *、視頻直播,使用 MongoDB 存儲用戶信息、禮物信息等

      --、CI(持續(xù)集成)/CD(持續(xù)交付/持續(xù)部署)介紹:

      互聯(lián)網(wǎng)軟件的開發(fā)和發(fā)布,已經(jīng)形成了一套標(biāo)準(zhǔn)流程,假如把開發(fā)工作流程分為以下幾個(gè)階段:

      編碼 --> 構(gòu)建 --> 集成 --> 測試 --> 交付 --> 部署

      --、NVM介紹及使用:維護(hù)多個(gè)版本的node,在同一臺PC機(jī)上可以隨意切換node版本。

      --、Advanced Packaging Tool(APT)是Linux下的一款安裝包管理工具,是一個(gè)客戶/服務(wù)器系統(tǒng)。

      Java程序員日常積累-向大神學(xué)習(xí)(一)

      --、sails其實(shí)是內(nèi)置的express,所以如果你之前使用的是express,那么你將很快的入門該框架,

      因?yàn)閟ails基本的語法同express相同,只不過sails集成了很多其他工具,使得我們開發(fā)更簡單。

      --、軟件文檔編寫規(guī)范

      標(biāo)題:宋體 二號 加粗

      一級標(biāo)題:黑體三號

      二級標(biāo)題:黑體四號

      正文:仿宋_GB2312 四號 ?1.5倍行距,首行縮進(jìn)2個(gè)字符

      --、lomak

      hutools

      p3c

      --、端口號被占用問題:

      1、根據(jù)端口號查找對應(yīng)的進(jìn)程號

      netstat -ano | findstr 80 //列出進(jìn)程極其占用的端口,且包含 80

      2、據(jù)進(jìn)程號尋找進(jìn)程名稱

      tasklist | findstr 9268

      3、殺死80的進(jìn)程號

      taskkill -PID <進(jìn)程號> -F //強(qiáng)制關(guān)閉某個(gè)進(jìn)程

      --、學(xué)習(xí)新知識之前一定要搞明白的幾個(gè)問題:

      1、有什么用?好處

      2、有什么弊端?壞處

      3、比較同類知識優(yōu)缺點(diǎn)。

      以上三個(gè)問題被也要背下來

      --、學(xué)習(xí)MQ:

      1、作用:

      1)、系統(tǒng)解耦

      2)、異步:將消息寫入消息隊(duì)列,非必要的業(yè)務(wù)邏輯以異步的方式運(yùn)行,加快響應(yīng)速度

      3)、流量削峰

      2、壞處:

      1)系統(tǒng)可用性降低

      2)、系統(tǒng)復(fù)雜性增加

      3、對比

      特性?? ??? ?ActiveMQ?? ??? ??? ??? ?RabbitMQ?? ??? ??? ??? ?RocketMQ?? ??? ??? ?kafka

      開發(fā)語言?? ?java?? ??? ??? ??? ??? ?erlang?? ??? ??? ??? ??? ?java?? ??? ??? ??? ?scala

      單機(jī)吞吐量?? ?萬級?? ??? ??? ??? ??? ?萬級?? ??? ??? ??? ??? ?10萬級?? ??? ??? ??? ?10萬級

      時(shí)效性?? ??? ?ms級?? ??? ??? ??? ??? ?us級?? ??? ??? ??? ??? ?ms級?? ??? ??? ??? ?ms級以內(nèi)

      可用性?? ??? ?高(主從架構(gòu))?? ??? ??? ?高(主從架構(gòu))?? ??? ??? ?非常高(分布式架構(gòu))?? ?非常高(分布式架構(gòu))

      功能特性?? ?成熟的產(chǎn)品,在很多公司得到應(yīng)用;

      有較多的文檔;各種協(xié)議支持較好?? ?基于erlang開發(fā),所以并發(fā)能力很強(qiáng),性能極其好,延時(shí)很低;管理界面較豐富?? ?MQ功能比較完備,擴(kuò)展性佳?? ?只支持主要的MQ功能,像一些消息查詢,消息回溯等功能沒有提供,畢竟是為大數(shù)據(jù)準(zhǔn)備的,在大數(shù)據(jù)領(lǐng)域應(yīng)用廣。

      --、Vuex概念理解

      在SPA單頁面組件的開發(fā)中 Vue的vuex和React的Redux 都統(tǒng)稱為同一狀態(tài)管理,個(gè)人的理解是全局狀態(tài)管理更合適;

      簡單的理解就是你在state中定義了一個(gè)數(shù)據(jù)之后,你可以在所在項(xiàng)目中的任何一個(gè)組件里進(jìn)行獲取、進(jìn)行修改,

      并且你的修改可以得到全局的響應(yīng)變更。

      --、約定大于配置

      --、entity:ocr/..

      dao:ocr/..

      --、全部注釋的文件:

      OcrDocumentAnalyzeKeywordServiceImpl.java

      AbstractCustomsCreate.java

      OcrIntelWaybillServiceImpl.java

      --、git使用順序:

      1、本地先commit到本地

      2、pull=>master pull,同時(shí)注意刷新

      3、沖突:解決沖突

      4、commit本地

      5、push 到自己的分支:注意修改分支

      6、確認(rèn)沒有沖突-->請求合并到master主分支

      --、權(quán)限控制:還用不用移?

      2019年4月26日:

      --、code + name 放在一張表里面 維護(hù)壓力大

      code在主表,name放在數(shù)據(jù)展示表里面

      --、字段不明,立馬提出來,不要私自套

      --、msql 對同一張表里面的字段數(shù)是由限制的

      --、制單主表一對一的,創(chuàng)建時(shí)必須都要創(chuàng)建,不管空不空

      --、表明命名規(guī)范

      表開頭:T

      視圖開頭:VW

      --、層級;

      controller:不要寫太多的業(yè)務(wù)邏輯,把業(yè)務(wù)邏輯放在service層

      service

      dao

      --、數(shù)據(jù)來源:

      來源一:先整理基礎(chǔ)數(shù)據(jù)到數(shù)據(jù)庫

      來源二:最值錢的技術(shù)點(diǎn):

      1、ocr:讀PDF和圖片

      2、excel表

      --、MyBatis Generator 自定義生成注釋

      https://segmentfault.com/a/1190000016525887

      --、傳參:個(gè)數(shù)盡量要少,擴(kuò)展性要好(增加/減少屬性方法方法不需要改)

      --、代碼規(guī)范:盡量少的訪問數(shù)據(jù)庫

      查詢字典,先全部查出來放到List里面,然后根據(jù)需要遍歷出符合要求的數(shù)據(jù)格式和數(shù)據(jù)類型要求。

      --、防止二次提交

      前端:通過JavaScript屏蔽提交按鈕(不推薦)

      后臺:{

      1、利用Session防止表單重復(fù)提交(推薦)

      2、使用AOP自定義切入實(shí)現(xiàn)

      3、使用redis計(jì)數(shù)器防止并發(fā)請求

      }

      數(shù)據(jù)庫: 給數(shù)據(jù)庫增加唯一鍵約束(簡單粗暴)

      --、jQuery在頁面上找到所有格text類型、可見、不是readonly及不是disabled的input框,

      每次輸入完之后自動跳到下一個(gè)input框

      if (flag != false) {

      var inputs = $("input:text:visible").not("[readonly]").not("[disabled]");

      for (var s in inputs) {

      if ($(inputs[s]).attr("id") == dateOfPort + "_text") {

      $(inputs[parseInt(s) + 1]).focus();

      return false;

      }

      }

      }

      --、pojo里面關(guān)于金額的字段類型要用BigDecimal,不要用double,更不能用float

      主要考慮到精度的問題,涉及金額的都要力求做到一點(diǎn)不能錯(cuò)

      --、mysql里面的in字段可以寫3000個(gè)值,oracle數(shù)據(jù)量里面的in字段可以寫1000個(gè)值

      --、上傳單據(jù)加文件大小屬性

      --、權(quán)限問題:

      1、分為:行為權(quán)限和數(shù)據(jù)權(quán)限

      行為權(quán)限:把每一種操作看作一個(gè)行為。

      數(shù)據(jù)權(quán)限:要用一張表來關(guān)聯(lián)用戶要看那些數(shù)據(jù)的關(guān)系。表里面要有部門id,組id等等。

      --、JPA學(xué)習(xí)

      1、增刪改

      2、查詢:

      》普通查詢

      》關(guān)聯(lián)查詢:只支持鏈?zhǔn)疥P(guān)聯(lián)查詢

      》查詢處對象之后,不要使用set方法修改查詢出來的對象,

      JPA在事務(wù)中碰到異常會把查詢的對象回寫到數(shù)據(jù)庫中。

      3、JPA和Mybatis的事務(wù)是一樣的

      Java 開發(fā)者

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:特征工程——文本特征
      下一篇:在120篇系列專欄中,才能學(xué)會 python beautifulsoup4 模塊,7000字博客+爬第九工場網(wǎng)
      相關(guān)文章
      国产亚洲高清不卡在线观看| 亚洲精品亚洲人成在线麻豆| 亚洲国产品综合人成综合网站| 亚洲精品国产美女久久久| 久久精品国产精品亚洲人人 | 亚洲私人无码综合久久网| 亚洲女人18毛片水真多| 亚洲综合亚洲国产尤物| 久久久久久久尹人综合网亚洲 | 国产精品亚洲玖玖玖在线观看| 国产成人不卡亚洲精品91| 亚洲AV无码专区在线厂| 国产亚洲福利一区二区免费看 | 亚洲人成网站在线播放2019| 久久亚洲最大成人网4438| 亚洲午夜精品在线| 亚洲制服丝袜第一页| 亚洲乱码在线播放| 亚洲午夜久久久精品电影院| 亚洲国产av一区二区三区丶| 亚洲一区二区三区免费在线观看| 亚洲国产美女精品久久久久| 精品亚洲AV无码一区二区| 亚洲日本国产综合高清| 亚洲日韩中文字幕一区| 亚洲AV无码国产精品永久一区| 国产亚洲视频在线| 国产精品亚洲精品日韩已方| 亚洲乱码国产乱码精品精| 亚洲AV成人片色在线观看高潮| 亚洲国产一区二区三区青草影视| 337p日本欧洲亚洲大胆色噜噜| 亚洲熟妇无码爱v在线观看| 亚洲人成网站18禁止久久影院| 一本色道久久88—综合亚洲精品| 亚洲爆乳无码专区www| 亚洲国产天堂久久综合| 亚洲永久精品ww47| 亚洲国产天堂久久综合网站| 亚洲制服在线观看| 亚洲人成电影网站色www|