<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          [精選]Mysql優(yōu)化查詢過程中的數(shù)據(jù)訪問

          共 5782字,需瀏覽 12分鐘

           ·

          2022-07-26 15:58

          1.TCP/IP協(xié)議中ARP及RARP協(xié)議的作用?
          ARP協(xié)議的作用是由IP地址查找對應的MAC地址
          RARP協(xié)議的作用正好相反,是由MAC地址查找對應的IP地址。
          2. 重放攻擊,Smurf攻擊,字典攻擊,中間人攻擊

          3.EXT3,EXT4,XFS文件系統(tǒng)大???

          Linux文件系統(tǒng)大小單個文件大小
          ext316TB2TB
          ext41EB16TB
          xfs18EB9EB

          4.Linux 系統(tǒng)文件描述符:

          0:STDIN 標準輸入
          1:STDOUT 標準輸出
          2:STDERR 標準錯誤輸出

          5.Mysql日志

          1. 有多少種日志redo/undo

          2. 日志的存放形式

            redo:在頁修改的時候,先寫到redo log buffer 里面,然后寫到redo log 的文件系統(tǒng)緩存里面(fwrite),然后再同步到磁盤文件(fsync)。

            Undo:在MySQL5.5之前,undo只能存放在ibdata*文件里面,5.6之后,可以通過設置innodb\_undo\_tablespaces參數(shù)把undo log存放在ibdata*之外。

          3. 事務是如何通過日志來實現(xiàn)的:

            因為事務在修改頁時,要先記undo,在記undo之前要記undo的redo,然后修改數(shù)據(jù)頁,再記數(shù)據(jù)頁修改的redo。Redo(里面包括undo的修改)一定要比數(shù)據(jù)頁先持久化到磁盤。當事務需要回滾時,因為有undo,可以把數(shù)據(jù)頁回滾到前鏡像的狀態(tài),崩潰恢復時,如果redo log中事務沒有對應的commit記錄,那么需要用undo把該事務的修改回滾到事務開始之前。如果有commit記錄,就用redo前滾到該事務完成時并提交掉。

          4. 必須了解的MySQL三大日志:binlog、redo log和undo log

          5. MySQL日志15連問

          6. MySQL基于日志還原數(shù)據(jù)

          6. Mysql json類型

          5.7.8開始,mysql開始支持json數(shù)據(jù)類型,json數(shù)據(jù)類型存儲時會做格式檢驗,不滿足json格式會報錯,json數(shù)據(jù)類型默認值不允許為空。
          優(yōu)勢:
          1. 存儲上類似text,可以存非常大的數(shù)據(jù)。

          2. JSON有效性檢查:插入的數(shù)據(jù)必須是JSON類型的字符串才行。

          3. 相比于傳統(tǒng)形式,不需要遍歷所有字符串才能找到數(shù)據(jù)。

          4. 支持索引:通過虛擬列的功能可以對JSON中部分的數(shù)據(jù)進行索引

          7. Mysql索引創(chuàng)建原則

          1. 最適合索引的列是出現(xiàn)在 where 子句或連接子句中的列,而不是出現(xiàn)在 select 的關鍵字后的列

          2. 索引列的基數(shù)越大,索引效果越好

          3. 對字符串進行索引,應指定一個前綴長度,可以節(jié)省大量的索引空間

          4. 根據(jù)情況創(chuàng)建復合索引,復合索引可以提高查詢效率

          5. 避免創(chuàng)建過多索引,索引會額外占用磁盤空間,減低寫操作效率

          6. 主鍵盡可能選擇較短的數(shù)據(jù)類型,可以有效減少索引的磁盤占用,提高效率

          8. 索引的注意事項

          1. 復合索引遵循左前綴原則

          2. like 查詢,%不能在前,可以使用全文索引

          3. column is null 可以使用索引

          4. 如果 MySQL 估計使用索引比全表掃描更慢,會放棄使用索引

          9.查詢速度慢的原因

          1. 打開慢查詢?nèi)罩荆ㄟ^ pt-query-dugest 分析

            #看一下當前mysql數(shù)據(jù)庫是否開啟了慢查詢
            show variables like 'slow_query%';

            #臨時開啟
            set global slow_query_log='ON';

            #永久開啟:修改配置文件my.cnf,在[mysqld]下的下方加入,重啟mysql服務
            [mysqld]
            slow_query_log = ON
            slow_query_log_file = /var/lib/mysql/tmp_slow.log //linux
            long_query_time = 1
          2. show profile,通過 set profiling=1;開啟,服務器上執(zhí)行的所有語句消耗時間都會記錄到臨時表。show profile for query QUERY_ID 查詢指定查詢
          3. show status,查詢一些計數(shù)器,猜出哪些代價高或消耗時間多
          4. show processlist,查詢線程狀態(tài)進行分析
          5. explain,分析單個 SQL 語句查詢

          10.Mysql優(yōu)化查詢過程中的數(shù)據(jù)訪問

          1. 訪問數(shù)據(jù)太多導致性能下降

          2. 確定應用程序是否檢索大量超過需要的數(shù)據(jù),可能是太多列或者行

          3. 確定 mysql 是否分析大量不必要的數(shù)據(jù)行

          4. 查詢不需要的記錄,使用 limit 限制

          5. 奪標關聯(lián)返回全部列指定 A.id,A.name

          6. 總數(shù)取出全部列,select * 會讓優(yōu)化器無法完成所有覆蓋掃碼的優(yōu)化

          7. 重復查詢相同的數(shù)據(jù),可以緩存數(shù)據(jù)

          8. 改變數(shù)據(jù)庫和表的結(jié)構,修改數(shù)據(jù)表范式

          9. 重寫 SQL 語句,讓優(yōu)化器可以更優(yōu)的執(zhí)行

          11.優(yōu)化長難的查詢語句

          1. MySQL 內(nèi)部每秒能掃描內(nèi)存中上百萬行數(shù)據(jù),相比之下,響應數(shù)據(jù)給客戶端就要慢得多

          2. 將一個大的查詢分解為多個小的查詢

          3. 分解關聯(lián)查詢,將一個關聯(lián)查詢分解為多個 sql 來執(zhí)行,讓緩存效率更高,執(zhí)行單個查詢可以減少鎖的競爭,在應用層做關聯(lián)可以更容易對數(shù)據(jù)庫進行拆分,查詢效率會有大幅提升,較少冗余記錄的查詢

          12 .優(yōu)化特定類型的查詢語句

          1. 優(yōu)化 count()查詢,count(*)會忽略所有列,直接統(tǒng)計所有列數(shù),因此不要用 count(列名)

          2. 優(yōu)化關聯(lián)查詢,確定 ON 或者 USING 子句的列上有索引;確保 GROUP BY 和 ORDER BY 中只有一個表的列,這樣 MySQL 才有可能使用索引

          3. 優(yōu)化子查詢,可使用關聯(lián)查詢替代

          4. 優(yōu)化 GROUP BY 和 DISTINCT,建立索引進行優(yōu)化

          5. 優(yōu)化 LIMIT 分頁,可以通過記錄上次查詢的最大 ID,如果根據(jù) id 排序時,下次查詢根據(jù)該 ID 來查 詢(如:ID > maxID)

          6. 優(yōu)化 UNION 查詢,UNION ALL 性能比 UNION 高

          13.高并發(fā)常見單位

          1. QPS:每秒鐘請求或查詢數(shù)量,在互聯(lián)網(wǎng)領域指每秒響應的請求數(shù)(指 HTTP 請求)

          2. 吞吐量:單位時間內(nèi)處理的請求數(shù)量(通常由 QPS 和并發(fā)數(shù)決定)

          3. 響應時間:從請求發(fā)出到收到響應花費時間

          4. PV:綜合瀏覽量(Page View),即頁面瀏覽量或者點擊量,一個訪客在 24 小時內(nèi)訪問的頁面數(shù)量。同一個人瀏覽你的網(wǎng)站同一個頁面,只記作一次 PV

          5. UV:獨立訪客(UniQue Visitor),即一定時間范圍內(nèi)相同訪客多次訪問網(wǎng)站,只能計算為 1 個獨立訪客

          6. 帶寬:計算帶寬大小需關注兩個指標,峰值流量和頁面的平均大小

          7. 日網(wǎng)站帶寬=PV/統(tǒng)計時間(秒)平均頁面大?。↘B)8

          8. 峰值一般是平均值的倍數(shù)

          9. QPS 不等于并發(fā)并發(fā)連接數(shù)。QPS 是每秒 HTTP 請求數(shù)量,并發(fā)連接數(shù)是系統(tǒng)同時處理的請求數(shù)量

          10. 二八定律(80%的訪問量集中在 20%的時間):(總 PV 數(shù) 80%)/(6 小時秒速 20%)=峰值每秒請求數(shù)(QPS)

          11. 壓力測試:能承受最大的并發(fā)數(shù)和最大承受的 QPS 值

          14.常用性能測試工具 ab

          # 模擬并發(fā)請求 100 次,總請求 5000 次 
          ab -c 100 -n 5000 http://example.com
          15.http 狀態(tài)碼
          1. 200 請求成功2. 204 not content

          2. 206 reset content

          3. 301 永久重定向

          4. 302 臨時重定向

          5. 307 臨時重定向

          6. 400 錯誤請求

          7. 401 缺少認證信息

          8. 403 拒絕

          9. 404 不存在

          10. 500 服務器異常

          11. 502 Bad Gateway

          12. 503 服務器超負載或停機維護

          16.OSI 七層協(xié)議

          物數(shù)網(wǎng)傳會表應
          1. 物理層:建立、維護、斷開物理連接

          2. 數(shù)據(jù)鏈路層:建立邏輯連接,進行硬件地址尋址,差錯校驗等功能

          3. 網(wǎng)絡層:進行邏輯地址尋址,不同網(wǎng)絡之間的路徑選擇

          4. 傳輸層:定義傳輸數(shù)據(jù)的協(xié)議端口號,一級流控和差錯校驗。協(xié)議有 TCP/UDP,數(shù)據(jù)包一旦離開網(wǎng)卡即進入網(wǎng)絡傳輸層

          5. 會話層:建立、管理、終止會話

          6. 表示層:數(shù)據(jù)的表示、安全、壓縮

          7. 應用層:網(wǎng)絡服務與用戶的 接口,默認協(xié)議有 :http(80),ftp(21),tftp,smtp(25),snmp,dns(53),telnet(23),https(443),pop3(110),dhcp 

            【面試】50道經(jīng)典計算機網(wǎng)絡面試題 
             面試中常見的計算機網(wǎng)絡的問題

          17. HTTP 協(xié)議常見請求頭/響應頭

          1. Content-Type 指定數(shù)據(jù)內(nèi)容類型

          2. Accept 指定客戶端能接受數(shù)據(jù)內(nèi)容類型

          3. Origin 最初請求來源(POST)

          4. Cookie

          5. Cache-Control 指定請求的緩存機制

          6. User-Agent 用戶瀏覽器信息

          7. Referrer 上級請求路徑

          8. X-Forwarded-For 請求端真實 ip

          9. Access-Control-Allow-Origin 允許其他請求域名,用于跨域

          10. Last-Modified 最后響應時間

          18.算法,邏輯結(jié)構,存儲結(jié)構的關系

          一個算法的設計取決于所選定的邏輯結(jié)構,而算法的實現(xiàn)依賴于所采用的存儲結(jié)構。

          • 順序存儲結(jié)構:用數(shù)據(jù)元素在存儲器中的相對位置來表示數(shù)據(jù)元素之間的邏輯結(jié)構(關系)。

          • 鏈式存儲結(jié)構:在每一個數(shù)據(jù)元素中增加一個存放另一個元素地址的指針(pointer ),用該指針來表示數(shù)據(jù)元素之間的邏輯結(jié)構(關系)

          19.PHP偽類型

          偽類型:假類型,實際上在PHP中不存在的類型。但是通過偽類型可以幫助程序員去更好的查看操作手冊從而更方便學習。

          1. mixed混合類型:多種PHP中的數(shù)據(jù)類型

          2. number數(shù)字類型:任意數(shù)值類型(整形和浮點型)

          3. callback回調(diào)類型:回調(diào)函數(shù)作為參數(shù)

          20.PHP-FPM的運行方式及優(yōu)缺點?

          • static :表示在 php-fpm 運行時直接 fork 出 pm.max_chindren 個子進程,

          • dynamic:表示,運行時 fork 出 start_servers 個進程,隨著負載的情況,動態(tài)的調(diào)整,最多不超過 max_children 個進程。

          一般推薦用 static ,優(yōu)點是不用動態(tài)的判斷負載情況,提升性能;缺點是多占用些系統(tǒng)內(nèi)存資源。
          N 是 CPU 內(nèi)核數(shù)量,M 是 PHP 能利用的內(nèi)存數(shù)量,m 是每個 PHP 進程平均使用的內(nèi)存數(shù)量
          dynamic 方式的公式:在 N + 20% 和 M / m 之間
          static方式的公式:M / (m 1.2)
          pm.max_requests:指的是每個子進程在處理了多少個請求數(shù)量之后就重啟。這個參數(shù),理論上可以隨便設置,但是為了預防內(nèi)存泄漏的風險,還是設置一個合理的數(shù)比較好。

          21.PHP常用信息函數(shù)

          phpinfo — 輸出關于 PHP 配置的信息
          phpversion — 獲取當前的PHP版本
          php_sapi_name — 返回 web 服務器和 PHP 之間的接口類型
          ini_get — 獲取一個配置選項的值
          ini_get_all — 獲取所有配置選項
          ini_restore — 恢復配置選項的值
          ini_set — 為一個配置選項設置值
          22.PHP的socket
          Socket 是在應用層和傳輸層之間的一個抽象層,它把 TCP/IP 層復雜的操作抽象為幾個簡單的接口,供應用層調(diào)用實現(xiàn)進程在網(wǎng)絡中的通信。

          23.PHP數(shù)組結(jié)構及排序原理

          PHP數(shù)組是由哈希表 + 雙向鏈表實現(xiàn)
          排序原理:
          1. 申請n個額外空間

          2. 遍歷雙鏈表 調(diào)用排序函數(shù)zend\_qsort(內(nèi)部是快速排序算法)對數(shù)組排序

          3. 調(diào)用排序函數(shù)zend\_qsort(內(nèi)部是快速排序算法)對數(shù)組排序

          4. 排序后,雙鏈表中節(jié)點的位置發(fā)生變化,因而調(diào)整指定指向

          5. 遍歷數(shù)組,分別設置每一個節(jié)點的pListLast和pListNext

          6. 設置HashTable的pListTail

          瀏覽 45
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  天堂在线www | 青青草在线观看免费视频 | 中文无码第一页 | 丁香婷婷激情 | 日韩欧美国产精品 |