日韩精品一区二区三区在线视频放-无码中文字幕V?一区二区-成年片免费观看视频-国内少妇人妻丰满av-国产精品中文字幕免费观看-亚洲成人久久一区二区三区-国内少妇偷人精品视频无缓冲-一区二区国产精品日本一区二区三区在线网

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運營的一線實戰(zhàn)洞察。

PostgreSQL常用命令全解析:從連接到備份恢復(fù)與性能診斷

PostgreSQL常用命令全解析:從連接到備份恢復(fù)與性能診斷 最近連續(xù)有好幾個剛接觸PostgreSQL的朋友跑來問我同一個問題PG database相關(guān)命令到底該怎么記這東西和MySQL不一樣命令散落在shell、psql、系統(tǒng)視圖里查個東西不知道查哪。這篇就把我實際用下來最頻繁、最容易繞暈的PG命令完整梳理一遍覆蓋連接、日常操作、信息查詢、備份恢復(fù)、權(quán)限、性能診斷和維護不光給命令還把每類命令背后的設(shè)計邏輯和踩過的坑一并講清楚。1. 先把命令體系捋清楚PG的命令其實分三個入口很多人在PG上覺得命令又多又散根本原因不是命令量大而是沒有意識到PG的命令分布在三個完全不同的入口里。三個入口搞清楚了后面所有的記憶負擔都會小一大截。第一個入口是操作系統(tǒng)層面的命令行工具。PG安裝完以后bin目錄下會有一批以pg_開頭或者獨立命名的可執(zhí)行文件psql、createdb、dropdb、pg_dump、pg_restore、pg_basebackup、pg_ctl、pg_controldata這種。這一層命令的特點是你在Linux終端或者Windows的cmd里直接敲它們負責的是對數(shù)據(jù)庫實例整體做操作比如創(chuàng)建庫、連接庫、備份、初始化實例。寫自動化腳本的時候打交道的主要是這一層。第二個入口是psql交互終端里的元命令。當你已經(jīng)用psql連上數(shù)據(jù)庫輸入以反斜杠\開頭的指令比如\l、\dt、\d、\x、\timing。這些命令不是SQL是psql這個客戶端程序自己提供的快捷鍵本質(zhì)上是幫你拼SQL查系統(tǒng)表。很多新手容易在這里迷路因為文檔里一提到命令就給你一堆反斜杠你以為這些是PG的SQL語法其實它們只活在psql里。第三個入口才是標準SQL包括CREATE TABLE、SELECT、INSERT、UPDATE、GRANT、VACUUM這類。這才是真正對數(shù)據(jù)庫內(nèi)容生效的東西在任何PG客戶端、任何語言驅(qū)動里都能執(zhí)行只是有些命令的名字會讓你誤以為它不是SQL比如VACUUM、ANALYZE、CHECKPOINT它們確實是SQL命令只是日常用得少。1.1 三個入口怎么配合使用我日常的工作流可以概括成一句話shell層做連接和備份psql層做快速瀏覽SQL層做真正的操作。舉個例子要排查一個線上庫為什么慢我會在shell里執(zhí)行psql連上去然后用psql的\x開啟縱向顯示再用SQL去查pg_stat_activity視圖。整個過程三個入口都會用到誰也不會替代誰。你如果只會其中一個入口就好比只會用手機上的計算器不會用電腦Excel活也能干但效率差很多。還有一件事容易被忽略psql元命令其實是可以傳參數(shù)的。比如\d requests表名后面可以跟上表名的模糊匹配\dt public.*這樣的寫法也支持通配符。你不需要精確記住表名單詞先用\d通過模糊查詢找到想看的表再按回車細化信息這個習慣比死記硬背命令高效得多。1.2 和MySQL的習慣差異端口、大小寫、幫助系統(tǒng)從MySQL轉(zhuǎn)過來的人第一個坑就是端口。MySQL默認3306PG默認5432用習慣MySQL的人寫連接命令端口經(jīng)常填錯報錯以后第一反應(yīng)是服務(wù)沒起來實際上服務(wù)好好的只是你連錯了地方。第二個坑是密碼選項。MySQL的-p是指輸入密碼PG里的-p是指端口。PG里輸入密碼用的是-W選項或者等它提示。如果你照著MySQL的習慣敲psql -p xxxPG會把你輸入的內(nèi)容當成端口號解析要么報數(shù)字格式錯誤要么直接連接失敗。這個真的是高頻翻車點。第三個坑是大小寫敏感。PG對不帶雙引號的標識符會強制轉(zhuǎn)為小寫。你建表時寫CREATE TABLE Users實際存儲的名是users如果你真的想要一個大寫開頭的表名必須寫CREATE TABLE Users而且之后每次查詢都得帶雙引號寫Users。這個設(shè)計和MySQL的寬松策略完全相反SQL看起來一樣行為卻完全不同。至于幫助系統(tǒng)psql里輸入?可以看所有元命令的幫助輸入\help SELECT可以看某個SQL語句的語法輸入\h可以列出所有SQL命令。這套幫助系統(tǒng)比很多圖形化工具還好用強烈建議養(yǎng)成先help再動手的習慣。1.3 搭建自己的速查路徑在學習階段不需要把每個命令背下來但是腦子里要有一張索引表想創(chuàng)建數(shù)據(jù)庫去哪查、想改密碼去哪查、想備份去哪查、想殺會話去哪查。每類問題只需要記住一個入口和兩三個關(guān)鍵命令就夠了剩下的相信?、\h和系統(tǒng)視圖。我自己在服務(wù)器上長期保存著一個筆記文件里面分了四塊日常管理命令、診斷查詢SQL、備份恢復(fù)命令、權(quán)限模板。每個星期都會往里補充一條新學到的東西。半年下來這個文件幾乎成了我的PG速查手冊。你自己也完全可以用同樣的方式積累這篇文章里的所有命令都可以作為前一百條內(nèi)容。2. 連接、建庫與日常增刪改查先把活干起來2.1 psql連接命令的完整參數(shù)與常見報錯連接PG最基礎(chǔ)的一條命令長這樣psql -h 127.0.0.1 -p 5432 -U myuser -d mydb-h后面是數(shù)據(jù)庫地址-p是端口-U是用戶名-d是數(shù)據(jù)庫名。不加-d的話PG會用你當前的操作系統(tǒng)用戶名作為默認庫名去連接經(jīng)常報database xxx does not exist很多新手在這個報錯上卡了很久實際上就是因為沒指定庫名。如果想要密碼自動提示加一個-W參數(shù)。如果服務(wù)器配置了本地信任認證不需要密碼那個別糾結(jié)。還有一點要注意psql的參數(shù)順序是寬松的-d mydb -U myuser和-U myuser -d mydb完全等價這點比很多命令行工具友好。連接過程中常見的報錯我整理了一下報錯信息常見原因處理方向could not connect to server端口沒通、防火墻攔截、服務(wù)沒起來檢查pg_isready、netstat、防火墻database xxx does not exist沒指定-d或庫名拼錯確認庫名或用\l查看password authentication failed密碼錯誤、認證方式不是md5/scram檢查pg_hba.conf認證方法no pg_hba.conf entry客戶端IP不被允許在pg_hba.conf增加對應(yīng)網(wǎng)段規(guī)則并reload以上這些報錯文本雖然不是完整的原文但特征基本一致。遇到問題先看最后一行PG的錯誤信息其實寫得很清楚只是很多人喜歡忽略英文直接抄日志問別人。連接成功以后psql提示符會變成mydb#或者mydb。前者代表你有超級用戶權(quán)限后者代表普通用戶。這個細微差別其實很重要看到你就該意識到很多管理命令會執(zhí)行失敗。連上以后第一時間做的事我建議執(zhí)行兩條SELECT version(); SELECT current_database(), current_user, inet_server_addr();這兩條可以確認你連到了哪個版本、哪個庫、哪個用戶、哪臺服務(wù)器。特別是多環(huán)境混用的時候這個操作能救你一條命。2.2 創(chuàng)建庫與表結(jié)構(gòu)的常用SQL創(chuàng)建一個數(shù)據(jù)庫SQL方式CREATE DATABASE mydb ENCODING UTF8;也可以在shell里直接createdb -h 127.0.0.1 -U myuser mydb刪除數(shù)據(jù)庫DROP DATABASE mydb;刪除之前建議先確認沒有連接占用否則會報being accessed by other users。我遇到過好幾次開發(fā)環(huán)境里一堆IDEA的數(shù)據(jù)庫面板自動掛著連接DROP DATABASE怎么都執(zhí)行不了最后是把那些連接斷開才成功。建表就沒什么特異功能了CREATE TABLE requests ( id BIGSERIAL PRIMARY KEY, user_id INT NOT NULL, api_path TEXT NOT NULL, status_code INT DEFAULT 200, created_at TIMESTAMPTZ DEFAULT now() );BIGSERIAL是PG里常用的自增方式底層是一個序列。也可以直接用GENERATED AS IDENTITY這是SQL標準做法PG 12以后都支持得不錯。二者差別不是很大但新項目我個人更推薦GENERATED AS IDENTITY語義更清晰也更方便后續(xù)遷移。查看表結(jié)構(gòu)psql里直接\d requests它會顯示每個字段的類型、默認值、約束還會列出索引、外鍵、觸發(fā)器等附屬結(jié)構(gòu)比寫SQL查information_schema快得多。想看到更細的存儲屬性用\d requests2.3 psql里高頻元命令速查連接數(shù)據(jù)庫這個動作在psql里用\c\c otherdb切換用戶/庫/端口也可以一步到位\c mydb myuser 127.0.0.1 5432列出所有數(shù)據(jù)庫用\l列出當前庫所有表用\dt想帶上表注釋和大小用\dt。看一個查詢結(jié)果如果列太多被截斷先開啟擴展顯示\x on開啟后每一行字段會豎著排同一條SQL再執(zhí)行一遍就清爽很多。這個模式在排查問題時幾乎是必開的。日常寫SQL的時候我很依賴兩個元命令\timing on \e\timing會打印每次SQL的執(zhí)行耗時不用自己手動記秒表。\e會打開默認編輯器通常是vi適合寫多行SQL寫完退出自動執(zhí)行。在有臨時復(fù)雜查詢的場景下這個組合比一條條敲要舒服太多。執(zhí)行外部SQL腳本用\i\i /path/to/script.sql導出查詢結(jié)果到文件在psql里可以用\o或者直接在shell里重定向psql -U myuser -d mydb -c SELECT * FROM requests; output.csv3. 信息查詢命令排查問題時的救火地圖日常運維中你真正需要手寫SQL去查的地方集中在幾個系統(tǒng)視圖和統(tǒng)計視圖里。這一節(jié)的內(nèi)容可以說是PG數(shù)據(jù)庫相關(guān)命令里最有價值的部分因為大部分故障的第一現(xiàn)場都是從這里找到的。3.1 pg_catalog 與 information_schema 的選擇PG里有兩個元數(shù)據(jù)來源information_schema是SQL標準視圖跨數(shù)據(jù)庫通用pg_catalog是PG自身系統(tǒng)表視圖信息更全更底層。查詢表結(jié)構(gòu)、列名、約束這類通用信息用information_schema比較穩(wěn)。但查詢物理存儲、膨脹情況、邏輯復(fù)制狀態(tài)這些PG特性信息必須用pg_catalog下的視圖比如pg_class、pg_namespace、pg_attribute、pg_stat_activity等。從使用頻率來看我80%的查詢都在pg_catalog體系里。information_schema更多是給報表系統(tǒng)或者圖形化工具用的標準化接口。查看一個庫下所有表和對應(yīng)的注釋SELECT c.relname AS table_name, obj_description(c.oid) AS comment FROM pg_class c JOIN pg_namespace n ON n.oid c.relnamespace WHERE n.nspname public AND c.relkind IN (r, p) ORDER BY c.relname;這個查詢雖然啰嗦但理解了pg_class和pg_namespace之后PG的系統(tǒng)表結(jié)構(gòu)就通了一半。3.2 當前連接、鎖等待與活動查詢排查數(shù)據(jù)庫突然變慢最常用的視圖絕對是pg_stat_activity。一條查詢跑遍所有問題SELECT pid, usename, datname, client_addr, state, wait_event_type, wait_event, query_start, now() - query_start AS runtime, query FROM pg_stat_activity WHERE state ! idle ORDER BY runtime DESC;看到state字段是active的進程結(jié)合query_start算一下運行時長基本就能判斷是正常慢查詢還是異常堵塞。如果大量會話卡在某個狀態(tài)且wait_event帶有Lock字眼說明存在鎖等待。鎖定位到具體是哪個進程堵了之后可以用這個函數(shù)查鏈條SELECT pg_blocking_pids(4567);把4567替換成你看到的被阻塞pid返回的結(jié)果就是堵住它的pid列表。然后再連查一層直到源頭。終止一個會話SELECT pg_cancel_backend(4567);取消不掉就用SELECT pg_terminate_backend(4567);兩者的區(qū)別是cancel是溫和取消當前查詢事務(wù)本身可以被應(yīng)用捕獲錯誤后回滾比較適合對付慢查詢terminate是直接斷開進程會把整個客戶端連接殺掉適合對付僵死連接。生產(chǎn)環(huán)境用terminate之前最好先確認這個連接是誰的、能不能斷。3.3 表大小、膨脹與索引使用統(tǒng)計磁盤空間到底被哪些表吃掉了很多人第一反應(yīng)是去看文件目錄其實一條SQL就出來了SELECT nspname || . || relname AS relation, pg_size_pretty(pg_total_relation_size(c.oid)) AS total_size, pg_size_pretty(pg_relation_size(c.oid)) AS table_size, pg_size_pretty(pg_total_relation_size(c.oid) - pg_relation_size(c.oid)) AS index_size FROM pg_class c JOIN pg_namespace n ON n.oid c.relnamespace WHERE c.relkind r AND n.nspname public ORDER BY pg_total_relation_size(c.oid) DESC LIMIT 20;pg_size_pretty會把字節(jié)數(shù)換算成人類的可讀格式這個函數(shù)在你處理空間問題時是高頻使用的。檢查表的膨脹情況看pg_stat_user_tablesSELECT relname, n_live_tup, n_dead_tup, CASE WHEN n_live_tup 0 THEN round(100.0 * n_dead_tup / n_live_tup, 1) ELSE 0 END AS dead_pct, last_vacuum, last_autovacuum FROM pg_stat_user_tables ORDER BY dead_pct DESC LIMIT 20;n_dead_tup代表死元組數(shù)量這個值長期偏高說明vacuum沒跟上表膨脹風險很高。索引命中率查詢SELECT schemaname, relname, indexrelname, idx_scan, idx_tup_read, pg_size_pretty(pg_relation_size(indexrelname)) AS index_size FROM pg_stat_user_indexes ORDER BY idx_scan ASC LIMIT 20;idx_scan長期為0的索引基本可以視為無效索引但注意先確認沒有唯一性約束不能只看使用率就刪。這類統(tǒng)計視圖是PG排查性能問題時最重要的地圖把它們當成常備工具勝過去背各種優(yōu)化口訣。4. 備份與恢復(fù)生產(chǎn)環(huán)境最常翻車的命令組合備份恢復(fù)這塊網(wǎng)上教程不少但大多數(shù)人只講了pg_dump一條命令。這里我重點講的是命令怎么組合、恢復(fù)到另一個環(huán)境時有哪些隱藏的坑這些才是生產(chǎn)環(huán)境真正要命的東西。4.1 pg_dump的格式選擇與并行參數(shù)pg_dump最基礎(chǔ)的用法pg_dump -h 127.0.0.1 -p 5432 -U myuser -d mydb -f mydb.sql這會生成一個純SQL文本文件里面是建表語句和數(shù)據(jù)插入語句。這種格式最大的好處是人眼可讀適合小庫、跨小版本遷移。但大庫用純SQL恢復(fù)特別慢并且中途出錯很難續(xù)跑。我更推薦custom格式pg_dump -h 127.0.0.1 -U myuser -d mydb -F c -f mydb.dump-F c 生成的是一種壓縮的二進制格式可以用pg_restore靈活控制恢復(fù)哪些對象。custom格式還支持并行恢復(fù)恢復(fù)大庫時速度快非常多。并行恢復(fù)pg_restore -h 127.0.0.1 -U myuser -d targetdb -j 4 mydb.dump-j 4代表開4個并發(fā)任務(wù)恢復(fù)。任務(wù)數(shù)建議不超過CPU核心數(shù)兩倍不然反而會因為資源競爭變慢。只備份數(shù)據(jù)不帶表結(jié)構(gòu)用pg_dump -a -F c -f data_only.dump只備份表結(jié)構(gòu)不帶數(shù)據(jù)用pg_dump -s -F c -f schema_only.dump這兩種方式在給測試環(huán)境搭建、生成對照庫時特別實用。4.2 pg_restore與psql回放的核心邏輯說清楚一個問題custom格式不能用psql直接回放必須用pg_restore。這是很多新手卡住的點。拿個大半天研究為什么psql讀dump文件報錯其實只是格式選錯了。一個常規(guī)的恢復(fù)流程# 先建目標庫如果還不存在 createdb -U myuser -h 127.0.0.1 targetdb # 恢復(fù)custom格式備份 pg_restore -h 127.0.0.1 -U myuser -d targetdb -j 4 mydb.dump如果dump里包含了建庫語句你可以用--create選項讓它先建庫再連庫恢復(fù)但前提是執(zhí)行pg_restore的用戶必須有建庫權(quán)限。查看一個dump文件里都包含了什么對象不用恢復(fù)就能列出pg_restore -l mydb.dump這個列表輸出很長可以配合grep只看某類對象比如只看函數(shù)pg_restore -l mydb.dump | grep FUNCTION如果你只想恢復(fù)其中一張表pg_restore -t public.requests -d targetdb mydb.dump4.3 恢復(fù)翻車現(xiàn)場權(quán)限、擴展、版本三大坑我實際在恢復(fù)dump到測試環(huán)境時遇到最多的問題歸納成三個。第一個坑是owner不一致。原庫的對象owner是prod_user目標環(huán)境里根本沒有這個用戶恢復(fù)時直接報錯。解決辦法是加上--no-ownerpg_restore --no-owner -d targetdb mydb.dump這個選項讓恢復(fù)后的對象owner統(tǒng)一變成當前執(zhí)行用戶規(guī)避掉一大部分權(quán)限問題。第二個坑是擴展缺依賴。比如表里有jsonb字段或者用了citext類型恢復(fù)時目標庫沒安裝對應(yīng)擴展就會報type does not exist。普通文本格式的dump里如果包含CREATE EXTENSION需要執(zhí)行者具有超級用戶權(quán)限否則也會被跳過?;謴?fù)之前先把該裝的核心擴展裝上CREATE EXTENSION IF NOT EXISTS citext; CREATE EXTENSION IF NOT EXISTS uuid-ossp;第三個坑是版本跨度過大。PG大版本之間的二進制格式不兼容pg_dump出來的dump文件最好在大版本內(nèi)恢復(fù)??绱蟀姹具w移建議先用低版本自帶的pg_dump導出再到高版本用pg_restore導入方向不能反。高版本導出的文件去低版本恢復(fù)基本都會失敗。還有一個很實用的細節(jié)給備份文件做完整性校驗恢復(fù)完以后立刻跑一遍行數(shù)抽查SELECT COUNT(*) FROM public.requests;這個動作成本不高但能快速發(fā)現(xiàn)數(shù)據(jù)中途丟失。5. 權(quán)限與角色命令從能跑到管得住數(shù)據(jù)庫能在本地跑起來和能在生產(chǎn)環(huán)境管得住之間的分界線就是權(quán)限命令。PG的權(quán)限體系比MySQL更細致但也因此容易踩到一些給了權(quán)限卻還是報錯的坑。5.1 角色與用戶的本質(zhì)區(qū)別在PG里角色ROLE和用戶USER本質(zhì)上是同一個東西。CREATE USER只是CREATE ROLE的一個便捷寫法區(qū)別僅在CREATE USER會默認帶著LOGIN屬性而CREATE ROLE默認不帶。CREATE ROLE app_user LOGIN PASSWORD xxx;等價于CREATE USER app_user PASSWORD xxx;查看當前實例下所有角色\du這個命令會列出角色名、屬性列表和成員關(guān)系一屏看全好人壞人。改密碼ALTER ROLE app_user WITH PASSWORD newpassword;角色繼承關(guān)系CREATE ROLE read_only; GRANT read_only TO app_user;app_user登錄后默認繼承read_only的權(quán)限。PG的權(quán)限檢查加上繼承特性理解起來需要一點疊加思維但實際使用中用繼承方式管理是很優(yōu)雅的。5.2 一組可以直接照抄的授權(quán)模板我根據(jù)實際場景整理了三個常用模板你可以直接搬走用。給一個只讀賬號CREATE ROLE read_only LOGIN PASSWORD xxx; GRANT CONNECT ON DATABASE mydb TO read_only; GRANT USAGE ON SCHEMA public TO read_only; GRANT SELECT ON ALL TABLES IN SCHEMA public TO read_only; ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON TABLES TO read_only;注意這里GRANT CONNECT是讓你能連上這個庫GRANT USAGE ON SCHEMA是讓你能看到并使用這個schema下的對象。很多人只記得給表授權(quán)忘了給schema授權(quán)結(jié)果用戶連上庫之后一執(zhí)行SELECT就報permission denied for schema public。給一個讀寫賬號CREATE ROLE read_write LOGIN PASSWORD xxx; GRANT CONNECT ON DATABASE mydb TO read_write; GRANT USAGE, CREATE ON SCHEMA public TO read_write; GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA public TO read_write; GRANT USAGE ON ALL SEQUENCES IN SCHEMA public TO read_write; ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT, INSERT, UPDATE, DELETE ON TABLES TO read_write; ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT USAGE ON SEQUENCES TO read_write;ALTER DEFAULT PRIVILEGES這段很多新手會忽略它的作用是以后在這個schema里新建的表默認自動授權(quán)給指定角色。不加這個今天你給用戶授了權(quán)明天業(yè)務(wù)方新加了一張表用戶又查不了看起來就是權(quán)限神秘失效。只讀賬號順便給序列的usage是因為如果查詢要走某些帶序列的視圖或函數(shù)可能會被卡住。實際場景中遇到這類報錯就明白了。查看某個表當前權(quán)限用\dp tablename或者SELECT grantee, privilege_type FROM information_schema.role_table_grants WHERE table_name tablename;5.3 權(quán)限問題上最容易忽略的三個場景第一個場景前面提到過的schema權(quán)限。很多團隊在給一個新賬號授權(quán)時列了一長串表自認為都覆蓋了結(jié)果用戶一登錄就報permission denied。問題不在表上而是USAGE ON SCHEMA沒給。這就像你給了別人一把房間鑰匙卻不讓對方進走廊。第二個場景函數(shù)執(zhí)行權(quán)限。PG里函數(shù)默認為PUBLIC可執(zhí)行但如果你在函數(shù)內(nèi)部訪問了其他表這個用戶必須同時擁有那些表的權(quán)限否則調(diào)用函數(shù)時依然會被拒絕。這個報錯藏得比較深往往不是在授權(quán)時發(fā)現(xiàn)而是應(yīng)用跑到一半才炸。第三個場景REVOKE之后還有殘留。想徹底收回一個用戶對某張表的所有權(quán)限不能只REVOKE一次需要把SELECT、INSERT、UPDATE、DELETE、TRUNCATE、REFERENCES、TRIGGER全部回收REVOKE ALL PRIVILEGES ON TABLE public.requests FROM app_user;REVOKE ALL這種寫法一次清干凈不要分開寫。6. 性能診斷命令EXPLAIN、慢SQL與鎖等待性能診斷這一塊是你把PG從能跑帶到跑得快的核心。我會先把EXPLAIN怎么讀講透再說慢SQL定位三板斧最后說鎖等待處置。6.1 EXPLAIN ANALYZE到底怎么讀寫SQL的時候如果懷疑查詢慢直接在SQL前面加EXPLAIN ANALYZE比如EXPLAIN ANALYZE SELECT u.name, count(*) FROM requests r JOIN users u ON u.id r.user_id WHERE r.created_at now() - interval 7 days GROUP BY u.name;輸出會是一棵執(zhí)行計劃樹從縮進最深的節(jié)點開始看每一行都有三個關(guān)鍵數(shù)字actual time、rows、actual loops。actual time字段的第一個數(shù)字是啟動時間獲得第一行前的耗時第二個數(shù)字是整個過程耗時單位毫秒rows是實際掃描的行數(shù)要和EXPLAIN里預(yù)估的行數(shù)對比rows大比例偏差說明統(tǒng)計信息失效需要ANALYZE或者檢查索引判斷執(zhí)行計劃好壞最簡單的方法是找兩個詞Seq Scan和Index Scan??吹絊eq Scan在表上掃了幾十萬行而你還期望它走索引那基本就是索引缺失、統(tǒng)計信息過期、或者SQL寫得讓優(yōu)化器沒法用索引??匆粋€例子上面SQL如果輸出里顯示requests表做了Seq Scan且掃描了50萬行user表也做了Seq Scan那這個查詢大概率會慢。解決辦法一般是在requests.user_id和requests.created_at上建復(fù)合索引并確保統(tǒng)計信息是最新的。加索引的命令CREATE INDEX CONCURRENTLY idx_requests_user_created ON public.requests (user_id, created_at DESC);CONCURRENTLY關(guān)鍵字表示不阻塞寫操作。生產(chǎn)環(huán)境建索引時我強烈建議不要省略它雖然它會讓索引創(chuàng)建更慢且不能在事務(wù)里執(zhí)行但換來的是不打斷應(yīng)用寫入值得。6.2 慢SQL定位三板斧第一板斧是看pg_stat_activity找到正在跑的query和運行時長。這個前面已經(jīng)給過SQL區(qū)別是要記住它只看得到正在執(zhí)行的歷史慢SQL它不會記錄。第二板斧是安裝pg_stat_statements擴展。這個擴展是慢SQL統(tǒng)計的利器CREATE EXTENSION IF NOT EXISTS pg_stat_statements;安裝之后可能需要數(shù)據(jù)庫管理員在配置里先開啟shared_preload_libraries并重啟實例默認情況下有些環(huán)境已經(jīng)預(yù)加載了直接查詢即可。查詢執(zhí)行總次數(shù)多、總耗時長、平均耗時長的SQLSELECT queryid, calls, round(mean_exec_time::numeric, 2) AS avg_ms, round(total_exec_time::numeric, 2) AS total_ms, round(max_exec_time::numeric, 2) AS max_ms, query FROM pg_stat_statements ORDER BY total_exec_time DESC LIMIT 20;這個查詢會告訴你過去這段時間里到底哪幾條SQL在燃燒你的數(shù)據(jù)庫CPU和IO。有幾次線上事故最終定位到源頭就是pg_stat_statements里某條應(yīng)用生成的動態(tài)SQL沒有用上索引。第三板斧是開慢查詢?nèi)罩?。修改配置ALTER SYSTEM SET log_min_duration_statement 1000; SELECT pg_reload_conf();意思是執(zhí)行超過1000毫秒的SQL都會寫入日志文件。這個參數(shù)在生產(chǎn)環(huán)境非常有用改完后不用重啟reload即可生效。6.3 鎖等待的定位與處置命令鎖等待和慢查詢經(jīng)常伴生不是SQL本身慢而是卡在等鎖。定位步驟通常這樣走。第一步看pg_stat_activity里wait_event有沒有Lock字樣SELECT pid, state, wait_event_type, wait_event, query_start, query FROM pg_stat_activity WHERE wait_event_type Lock;第二步用pg_blocking_pids找到鎖源SELECT pid, pg_blocking_pids(pid), query FROM pg_stat_activity WHERE wait_event_type Lock;第三步定位到源頭會話后用前面說過的pg_cancel_backend或者pg_terminate_backend處理。這里想特別提醒一件事lock_timeout這個參數(shù)值得在設(shè)計表結(jié)構(gòu)時就考慮。在長時間持鎖的DDL場景下給應(yīng)用會話設(shè)置SET lock_timeout 5s;可以讓等待鎖的會話在5秒后自動放棄而不是無限期掛在那里。很多數(shù)據(jù)庫無響應(yīng)事故就是被無限等鎖拖死的。7. 維護類命令避坑清單日常運維繞不開的幾件事最后這部分講幾個日常維護中繞不開的命令每個命令都有它典型的為什么和別亂動。7.1 VACUUM、ANALYZE與膨脹處理PG的并發(fā)控制靠MVCC刪除一行數(shù)據(jù)并不會立刻從物理文件里抹掉而是標記為死元組。這些死元組要靠VACUUM清理。VACUUM public.requests; VACUUM ANALYZE public.requests;普通VACUUM不鎖表可以在線跑。ANALYZE會更新統(tǒng)計信息優(yōu)化器等會兒執(zhí)行計劃就能更準確。兩者一起跑是常規(guī)操作。生產(chǎn)環(huán)境其實不必頻繁手動執(zhí)行因為PG默認開著autovacuum。但對一些超大表autovacuum可能來不及清理這時候可以在業(yè)務(wù)低谷手動跑一次。千萬注意不要輕易在生產(chǎn)環(huán)境用VACUUM FULLVACUUM FULL public.requests;VACUUM FULL會重寫整張表并且全程持鎖大表跑起來期間應(yīng)用寫入全部阻塞。我見過有人因為一張幾億行的表膨脹嚴重直接在高峰時段執(zhí)行VACUUM FULL結(jié)果整個業(yè)務(wù)停擺。正確的思路是優(yōu)先確認autovacuum配置正常實在需要物理收縮時才考慮VACUUM FULL而且放在維護窗口執(zhí)行或者直接通過新表遷移來替代。7.2 配置修改與生效方式ALTER SYSTEM與reload修改PG配置不建議直接去編輯postgresql.conf因為容易出錯。PG 9.4以后支持ALTER SYSTEMALTER SYSTEM SET max_connections 500;修改完后一部分參數(shù)需要reload生效SELECT pg_reload_conf();還有一部分參數(shù)必須重啟實例才生效。重要參數(shù)大致可以分兩類參數(shù)是否需要重啟典型場景max_connections重啟連接數(shù)不足shared_buffers重啟內(nèi)存緩沖不足work_mem無需會話級生效排序/哈希操作慢log_min_duration_statement無需reload慢SQL追蹤effective_cache_size無需reload優(yōu)化器選錯計劃work_mem有個坑值得單獨說它表示單個排序或哈希操作能使用的內(nèi)存不是整個查詢。如果你把它設(shè)置成1GB而并發(fā)50個會話都在排序瞬間就能吃掉50GB內(nèi)存。所以修改這類參數(shù)要結(jié)合并發(fā)量不能只看單次操作。7.3 連接數(shù)打滿時的急救流程連接數(shù)打滿是一種特別常見的故障表現(xiàn)為新連接報too many connections。急救步驟一般是這樣第一步看當前連接分布SELECT datname, usename, count(*) FROM pg_stat_activity GROUP BY datname, usename ORDER BY count(*) DESC;第二步殺掉明顯異常的連接。如果是一些應(yīng)用的重試連接堆積可以用pg_terminate_backend批量清理掉非關(guān)鍵連接。謹慎一點的做法是先把它們cancel了再看。第三步調(diào)整連接池的配置。生產(chǎn)環(huán)境應(yīng)用不應(yīng)該直連PG中間一定套一個連接池應(yīng)用層控制連接池上限PG端用pgbouncer或者proxysql做集中池化。如果沒接連接池max_connections再大也只是慢性死亡。這個屬于架構(gòu)問題但和命令使用的關(guān)聯(lián)很深。另一個維護命令是CHECKPOINTCHECKPOINT;它作用是把WAL緩沖區(qū)的內(nèi)容刷到數(shù)據(jù)文件讓崩潰恢復(fù)更快。平時不需要手動執(zhí)行但如果在做某些備份或要關(guān)閉實例之前執(zhí)行一次可以縮短恢復(fù)時間。這也算是我見過的命令存在但很少被正確使用的一類。最后說個經(jīng)驗這篇文章列的命令我在真實項目里都實際用過。如果你現(xiàn)在剛起步我的建議是先別急著把每條命令背下來動手執(zhí)行一遍然后按自己的使用場景把這個速查文檔沉淀下來。把五個場景練熟就夠了連接、查詢信息、備份恢復(fù)、權(quán)限、慢查詢排查。等這五塊熟了剩下的都是隨用隨查。另外想強調(diào)一個總的習慣凡是涉及生產(chǎn)環(huán)境的命令先在一個空庫里試一遍。特別是DROP、TRUNCATE、VACUUM FULL這類重量級操作試完你才會對它的輸出和影響有切身體感。數(shù)據(jù)庫命令的價值不在知道而在用對。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
91精品久久久久五月天精品| 五月婷婷色| 日本天天操| 亚洲熟女乱综合一区二区三区| 91观看 国产白丝| 日本视频在线观看污污污| 青青草九九九九九| 亚洲丨在线| 国产 亚洲 丝袜 制服| 亚洲人在线| 久久久久久久性爱| 女优视频第10页| 伊人久久大香蕉线AV五月天| 欧美丰满少妇xx高潮| 五月综合激情网| 啊啊啊啊啊,啊啊啊啊好舒服,操我舒服啊啊啊 | 免费人成毛片乱码| 日本天天吊| 东京热男人天堂| 色婷婷久久| 又黄又硬又粗又长国产视频| 丁香激情五月天| 欧亚日韩三区| 99re公开精品免费视频| 欧美啪啪啪91| 欧美日韩精品一区二区三区高清| 亚洲人妻久久久| 亚洲四虎熟女精品| 一区二区三区男人的天堂| 亚洲一欧洲中文字幕在线| 成人天天爽| 色综合天天| 91 国产丝袜在线播放-百度| 女人爽到高潮潮喷18禁网站| 欧美综合天堂| 亚洲日韩AV视色| 青青青青操国内视频在线| 大香蕉在线视频15| 欧美不在线| 久久色一区| 国产无码三级视频在线观看| 超碰人妻中文在线| 日韩激情视频| 在线无码操| 97在线播放| 亚洲成人免费在线| 97香蕉网| 97热视频在线观看| 青娱乐 成人娱乐在线| 精品亚洲黄色片 国产精品导航一区二区| 色天堂综合| 去干网最新版| 日本成人A片免费看| 涩爱AV在线| 久久久com| 妇女一区二区三区| 欧美AB在线| 欧美AB在线观看| 日韩无码a片| 啊啊啊啊二区好大| 色五月大香蕉| 男女激情黄色网址| 五月婷亚洲精品天堂| 色九月综合| 亚洲啪啪视频一区二区| 人人操人人色网| 亚州中文字幕超碰97| 在线国产一区二区av| 舔足天天操天天射| 精品999日本| 亚洲男人天堂Av| 99re6国产精品99re| 久伊人网78| 一区二区 日韩 欧美 国产 传媒| 99热9| 欧美成人免费在线观看| 欧日韩一二三f区| 884t在线| 久久91精品国产9丨久久分亭| 中文字幕精品人妻丝袜| 欧美人妻精品一区二区| 91精品久久久久久久久久| 人人人摸人人| 四方色播| 欧美一区二区| 国产极品久久久| 久久激情视频| 无码一区免费在线不卡| 九九九网站| 色天使AV天堂| 麻豆av一区二区三区| 97伊人网| 亚洲色图 欧美热图 清纯唯美 另类自拍 | 亚洲 日本 不卡| 精品人妻一区二区乱码一区二区| 97精品一二区| 五月色综合| 视频不卡中文字幕| 日韩射精| 中文一区二区三区影院| 亚洲丝袜诱惑| 一区二区三区男人的天堂| 蜜臀色乳| 日韩国产十八禁| 久久国产视频性吧| 九九热最新| 天天操夜夜嗨| 国产精品久久久久亚洲av| 成人无码在线视频网站| 岛国免费视频在线| 精品久久久av无码免费| 大香蕉78| 波多野42部激情无码喷潮| 天天躁日日躁狠狠狠躁| 欧美的精品的视频| 丁香五月激情五月| 色色色色网站| 亚洲另类春色| 久久久一区二区三区三州| 中文乱码字幕观看| 私人尤物在线精品不卡| 亚洲无码com| 精品美女少妇一区二区| 大色综合| 国产精品点击进入在线影院| 操我无码| 十八禁视频网站| 国产精品成人无码av无码免费| 国产综合网站在线播放 | 色眯眯av| 限制级中的三级片中的黑粗大屌屌日人妻熟女| 中文久久久| 欧美综合在线第一页| 人人操人人操人妻人| 久草这里只有精品 | 天天日日日射| 熟女一区二区三区| 伊人网一本| 超碰久在线天天做| 欧美色97| 夜色91| 岛国黄片网站| 亚洲夜夜欢无码一区二区| 97色婷| 国内91熟女人妻丝袜天天精品视频在线| 狠狠激情综合狠狠操中文字幕| 看一级黄色视频| 67914亚洲精品| 亚洲不卡不卡中文字幕不卡 | 色情婷婷| 大香蕉 222| 三级片大波波| 久久久一区二区三区麻豆| 屁股久久久久久| 日韩av不卡在线看| 国产综合网站在线播放 | 久久久四区| 成人性爱AV在线免费观看| 天天干,天天日| 日本一区二区电影网站| 欧美精品日韩一区二区| 日韩欧美中文日韩欧美色| 久久精品国产99久久,亚洲日韩久久日本一区一区三区 | 九一性生活免费视频| 人妻天天夜夜爽一区二区| 97干日韩| 日韩高清一二三| 992这里有精品| 乱操乱伦AV| 色综合一区二区三巨| 91精品国产91综合久久蜜臀| 亚洲国内精品成人不卡| 九九亚洲视频| 91国内外在线| 欧美激情综合网| 国产免费黄色一级大片| 黄色大香焦1级‘′‘| 混色激情av| 男人的天堂不卡一区二区| 精品在线观看视频在线| 日韩欧美性吧婷婷乱伦大香蕉| 国产在线综合网| 日韩人妻免费精品| 看看日B真人视频| 久久鲁干| 操学生天天| 丁香婷婷久久| 日本一卡二区在线| 抽插无码高清一区| 中文久久96| 欧在线一二区| 91丝袜美女视频| 国产一级久久久| 日韩精品中文字幕二区| 日本一天色道久久久精品视频| 亚洲熟女国产综合另类| 久久9久9久99久9久9| 国产精品麻豆视频网站| 天天综合网日韩7799| 天美传媒精品久久视频| 日本免费中文一区二区三区四区| 人人妻人人爽人人精品| 九九热三级片| 九九久久精品| 日韩黄片视频试看| ,国产乱人伦精品一区二区三区| 美女网站黄页| 精品国产片亚洲一区| 亚洲情色 自拍| 97爱免费插| 91综合色| 久久久久9| www.av在线视频| 综合少妇网| 亚洲av影院在线观看| 伊人国产AV| 91 国产丝袜在线放观看| 18禁无码永久免费无限制| 亚洲天堂电影网| 偷拍 亚洲 欧美| 婷婷五月丁香五月| 欧美色综合网| 色九九综合AV| 亚洲自拍偷拍视频在线| 久久9999 | 欧美日韩青操| 五月综合婷婷久久网站| 激情在线青青操| 天天日少妇逼AV| 操操逼视频| 日噜夜夜夜夜夜夜夜夜夜夜爽爽爽爽爽爽爽爽爽爽爽爽 | 啊啊啊啊操死我了| 99久久网站| 激情五月天插| 岛国免费黄色网址| 欧美日韩另类激情图片| 亚洲精品黑丝| 国产不卡中文字幕免费avi| 欧美日韩一区二区三区四区蜜桃| 97欧美| 啊好大好舒服| 日韩欧美亚洲一区二区三区影院| 国产精品无码久久久久2025| 97国产人人| 精品免费成人久久| 91精品少妇搡搡搡| 淫骚熟女一区二区三区| 亚洲欧洲另类| AV无码久久久精品| 成人亚欧免费视频| 色网在线视频观看免费| 少妇一区二区三区精选| 91热热色| 亚洲爱爱视频一区二区| 色婷婷久久| 人妻啪| 日韩av免费一级电影| 亚洲 在线| 婷婷五月天无码 | 欧美精品在线观看| 手机在线人成免费视频| 人人射人人操人人摸| 色妇91| 91狠狠色丁香婷婷综合久久| 思思热在线观看| 亚洲av淫乱| 吖在线不卡一区二区国产剧情| http://qxhbdz.com| 在线无码操| 亚洲日韩乱码中文无码蜜桃臀网站| 操www| 中日韓欧美高清| 草久在线| 欧美一二三| 欧美BT 亚洲色图| 欧美,亚洲,日韩,v,天堂,手机在线观看| 97 九色| 国产精品爱欲| av三级电影在线播放| 日本成人A片网站| 国产大学生口爆吞精合集| 乱伦a片视频| 国产免a费看黄片在线| 舔舔啊| 精品免费一区| 色眯眯射| A啊啊在线观看| 欧美另类自拍| 超清中文乱码字幕| 91岛国动作片| 中文字幕乱妇免费视频| 成年无码动漫av片无尽在线 | 九九热三级片| 97日视频| 五月天婷婷欧美三区| 96AV久久久| 屁股久久久久久久久| 日韩在线国产字幕| 亚洲色婷婷久久91| a在线观看| 综合久| 麻豆伊人网| av网站在线看| 美女91网站| 欧亚性爱视频免费看| 蜜臀av中字字幕网站| 五毛骚逼极品美女怕怕| 九九热re99re6在线精品| 日本丝袜人妻内射| 久9久9精品| 久久国产在线一区二区| 青青草玖玖爱| 99精品成人免费看| 欧美少妇性乱| 久久精品久久久久久久久| 久久久久久999| 日韩78m视频| 男人天堂网手机版婷婷| 亚洲一卡2卡3卡4卡乱码网站| 精品大久久| 亚洲国产丝袜熟女av| 久九九九九九九热| 精品欧美不卡在线播放| 91黑丝操| 干干干天天| 欧美永久激情一区二区| a亚洲欧美色欲| 9热9热综合网| 天天日天天搞天天干| 男女香蕉一区二区| 日韩欧美午夜视频在线| 搡老女人老91二区| AV高清一区| 中日韩熟女| 99精品丰满人妻无码| 人人摸人人干人人拍97| 亚洲国产97在线精品一区| 志村玲子视频一区二区| 九九热精彩视频| 超碰95| 无码视频一区二区| 欧美日韩性爱操大逼| 噜噜噜狠狠色综合| 中欧人妻丝袜中文字幕 | 99热18| 91日产欧美| 草莓精品视频| 欧美一二三| 色噜噜人妻丝袜a∨先锋影 | 一本大道久| 婷婷激情五月综合| 天天爱综合网| 骚日日av| 在线欧美亚洲| 精品一区二区三区免费古装毛片香港三级日本三级人妇 | 欧美色就是色| 中国一级αV| 无码九九| 精品人妻少妇| 国产一国产一级毛片古装| 精品午夜福利| 色婷婷视频| 激情综合网激情五月天| 亚洲欧美在线丝袜| 激情 欧美 亚洲 小说| 中文字幕一区二区三区四五区| 高清无码人妻久久久一区二区三区aⅴ| 日韩欧美女求操每天更新| 日韩啊V| 国产欧美日韩一区二区三区| 国产精品一区二区 尿失禁| 97久久久久久久精| 九九热九九| 无码聚合| AV天堂电影网| 骚鸭AV| 激情小说日韩无码| 26uuu国产| 乱论91| 欧美探花网| 久久精品福利影院| 五月丁香网站| 东京热99999| 91人人| 最新三级网址| 美女超碰978| 国产亚州精品美女久久久免费| 极品销魂美女一区二区| 懂色aV一区二区天美传媒| 日韩操呦呦影院在线观看| 天天操人人操骚逼网站| 国产精品久久久视频| 999熟女精品| 国产精品岛国片在线观看| 视频黄色国产一级| 日本熟女中文字幕一区| 美女黄站| 黄色片一区二区三区四区五区| 91人妻在线视频| 亚洲情色在线| 一二三四日本视频高清| 丁香九月 婷婷| 激情深爱五月天| 99999久久久久9国产精品| 高清无码91| 九九热精品| 香蕉一区二区三区在线视频| 麻豆天美AV传媒第一页| 国产www色在线观看| 久久亚州精品成人Av无| 欧美亚洲日本视频久久久| 超碰99在线| 好爽要喷了| www.超碰在线| 精品一久久久| 无码乱人伦中文视频| 99久久精品欧美国产| 五月丁香综合啪啪| 亚洲在线欧美| 啊啊啊啊啊在线视频| 日日骚 av| 最近2019中文字幕国语免费版| 91黑丝少妇| 欧美黄色手机在线观看| 99re6久热只有精品6在线直播| 国产精品久久久久久久久久久久久久吹 | 色色网91| 精品96久久| 超清福利精品视频在线| 国产又色又爽又舒服的三级视频 | 天天添天天干电影| 色哟哟 日韩精品| 熟妇一区二区三区| 国产精品亚洲色婷婷久久久| 欧美在线啊啊啊| 欧美亚洲尤物久久| 99久在线精品99re8| 色婷婷激情| 五月丁香六月综合缴清无码| 亚洲图片 激情小说| 九九热AV| 97在线精品观看视频| 日韩无码人妻中字久久三区四区| 久久极品伊人| 思思热在线视频免费| 亚洲男人天堂2| 色眯眯射| 色噜噜国产在线| 亚洲精品国产无码高清| 深夜视频| 人妻熟女一区二区| 97香蕉人人乳| 熟妇人妻精品一区二区视频色欲| A片 AV一级在线播放观看免费 | 女人精品内射国产99| 精品国产乱码久久久兰草影视| 色综合尤物| 欧美日韩久久精品爱爱| 日韩精品9区| 青青草精品| 五月丁香色综合| 亚洲国产精品9999在线观看| 国产视频第2页| 日本 欧美 亚中文字幕| 大香蕉免费乱伦视频| 色在线综合| 久操在97| 久久麻豆一区二区| 人人操人人狠狠操| 综合久久少妇中文字幕| 新怡红院| 亚洲综合影院| 国产精品久久久久久久电影渣男| 一级成人性爱| 最新的亚洲无吗| 福利社区午夜一区二区| 一本精品日本在线视频精品| 99re国产精品视频| 日韩综合无码色欲vv| 国产精品分类在线观看| 久久精品超碰| 欧美性第一页| a一区二区三区乱码在线| 操迟操逼在巾线Fre看| 国产精品爱欲| 99久久e免费热视| 7777欧美成是人在线观看| 91丨九色丨熟女高潮| 五月丁香成人网| av操操不卡| 久湿久久| 欧美色图亚洲色| 中文字幕天堂在线| 97国产高清视频在线观看| 被体育老师抱着c到高潮| 俄罗斯一区二区视频在线观看 | 久久久精选| 97se亚洲| 日本熟妇人妻中出视频| 99无码视频| 91精品丝袜在线观看| 鸥美插入视频| 四虎影视 亚洲无码| 九九干| 91精品国产高清久久久久久,亚洲成人| 中文字幕一区 二 区 三 四 五 区日 日 骚 | 天天影视综合色| 日韩15p| 丝袜熟女一区二区三区| 日韩影片中文字幕一区二区三区| 夜夜无码| 六月激情网| 欧美综合天堂| 亚洲成人一区二区精品| 媚薬在线视频麻豆| 台湾一区国产高清在线| 999日韩中文精品观看视频。| 欧美色图欧美| 青青草啪啪网| 精品妇女一区二区三区| 久久99国产综合精品女同| 五月天人妻综合| 成人无码在线视频网站| 国产夫妻一区二区| 亚洲啪啪综合?v一区综合精品区| 91精品久久综合熟女| 国精综合一二三区影视| 国产亚洲精品久久久久小| 99999精品| 亚洲AV色图| 超碰地址97| 91狠狠综合久久久久久| 99蜜月精品久久| 啊啊在线| 久久女人| 亚洲国内精品成人不卡| 国产欧美一级在线观看| 双插性欧美一二三区| 中日韩熟女| 黑人中出21连凳花野真衣| 久久人妻一区二区三区高清| 国产亚洲日韩在线三区黑人| 97资源站国产精品| 97干在线看| 丁香婷婷九月| 香港日本韩国人妇99www.wccm20| 影音先锋日本乱伦| 97视频在线观看播放与子乱对白在线……| 国产亚洲综合欧美一区| 久久av成人无码免费| 国产天天看| 高清在线偷拍自拍视频| 超碰欧美COM| 丁香五月影院| 热99re69精品8在线播放| 久久综合女优| 91人人爽人人爽人人人,gav福利视频导航,日韩欧美亚洲国产字幕四区 | 综合 欧美 亚洲 日本| 七久久久| 欧美人妻精品一区二区| 日本淫乱女一区二区三区视频| 亚洲极品| 午夜久久一区二区无码中出| 亚洲欧洲网站免费观看| 亚洲精品国产专区在线观看| 日韩综合色网| 日本性爱网址| 91/欧美| **一级毛片国产| 一区二区三区麻豆| 男人的天堂com| 国产熟女| 91欧美长吊| 久久久人体| 欧洲色| 国产av又色又爽又黄| 激情婷婷丁香网| 成年人性爱日韩| 国产一区二区在线看| 欧美五区| 99热网站| 国产亚洲精品美女久久久久久2021| 91女优在线观看 | 亚洲最大AV网| 超碰人人超在线观看| 五月婷婷深深爱| 国产丝袜美女在线一区| 人人操人人摸人人看人人干| 色就色综合| 日本免费专区| 日本色色色网站免费看不卡| 精品一区二区三区四区外站 | 欧美人妻一区| 蜜臀亚洲中文| 国产97在线视频| 日韩特一级久久| 日韩精品第3页| 亚洲欧美精品久| 97大色网| 国产精品国产| 欧美激情内射| 天天摸天天舔天天操| 欲女人妻性色av| 亚洲熟女乱综合一区二区在线-...亚洲国产日韩欧美一区二区三区,久久久久久精 | 国产人人干| 91N综合网在线| 美女十八禁| 天堂精品| 老司机福利青青草| 久久国产乱子伦精品免费女人| 精品人妻一区| 在线电影亚洲色图| 中文字幕AV中出| 夜夜精品视频| 变态乱伦伪娘灌肠一区二区| 香蕉视频精品亚洲一区二区三区在线播| 欧美黑人熟妇精品91| AV一起草在线| 91一起操| 日本熟妇浓毛hdsex| 中文字幕精品码亚洲| 女性喷水高潮在线观看| 亚欧性爱在线无码| 一区二区三区无卡视频在线观看| 精久久久| 岛国激情视频在线观看| 91婷婷| 久久久久亚洲精品| 久久国产精品视频| 岛国激情视频软件| 熟女啪啪视频| 亚洲精品久久久久毛片A片拉屎| 亚洲色图欧美色图日韩色图| 天堂种子在线www网资源| 北京美女一区二区| 国产成年精品高清在线观看91| 99成人| 一区二区三区四区在线不卡| 日韩在线欧美精品一区二区| oumeisetu综合| 伊人久久大香蕉线AV五月天| 国产家庭乱伦表演| 黄网色一区二区三区四区精品| 黄色区免费观看中文字幕| www.夜夜操| 亚洲色图A| 色五月婷婷在线| 91天堂丝袜美腿| 开心五月婷婷激情| 日韩欧美大片免费高清啪啪| AAAAAAAAA黄片| 色爱欲亚洲| 免费一级精品啪啪视频| 情色五月天网| 国产成人免费观看在线视频| 亚洲AV不卡在线观看| 日本人妻A片成人免费看片| 桑老女人九区| 区日韩亚洲乱码av电影| 看免费的黄片| 亚洲AV色图一区| 日日夜夜干| 在线有码中文字幕| 啊灬啊灬啊灬好深灬快高潮了动漫-国产字幕国产在线观看-B049AV | 国产2.3.4区| 六月天婷婷| 亚洲欧美黄| 97亚洲一区| 亚洲啪啪综合?v一区综合精品区| 白丝少妇一区二区| 91精品综合久久久久久五月丁香| 日韩簧片免费看| 日韩AV一区二区三区三州三州| 操婢日韩| 日韩欧美加勒比| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师 | 性吧在线视频| 亚洲欧洲中文日韩女优乱码| 一区,二区,三区网站| 色黄色美女大长腿午夜视频| www欧美91| 久久精品无码熟妇一区二区三区视频导航 | 婷婷五月在线视频| 激情小说亚洲色图| 精品少妇一区二区| 久久超碰98| 91在线美女| 成人在线视频网| 在线观看色视频| 欧美亚洲自拍另类人妻| 久久久久久久久久久久欧美日| 大学生口爆吞精| 玖玖久久久| 国产高清在线自在拍69| 男人的亚洲天堂| 囯产精品一区二区三区线|亚洲人成无码网WWW动漫|国产精品免费一级... | 色哟哟的毛片| 成人av动漫在线观看| 乱伦1色页| 欧美精品一区二区少妇免费A片| 七月婷婷综合| 69精品| 欧美v亚洲v综合v国产v妖精| 大香蕉十区| 6080YYY午夜理论片在线观看| 青青草一区二区高清无码视频| 综合少妇网| 中韩中文字幕在线观看| …亚洲黄色厕厕女女在线播…| 亚洲天天自拍| 97超碰香蕉| 一区二区影视| 精品欧美不卡在线播放| 91老熟妇| 久久精品店| 大香蕉婷婷| 物尤视频一区二区| 天天日骚逼熟女| 精品无码久久| 中文操逼字幕| 搡老人老9丨女老熟人| 亚洲天堂久久| juliaann丝袜大战黑鬼| 久久成人东京热人妻| 啊啊啊操死我| 污污汅18禁网站在线永久免费观看| A片 AV一级在线播放观看免费| 91色婷婷综合久久中文字幕二区| 夜夜操2028| 大香蕉伊然在亚洲91| 94色色电影网| 国内偷拍精品一区二区| 亚爽爽爽爽爽爽爽爽| 奇米四色影视777久久久| caoni国产亚洲av| 神马午夜久久久| 熟妇高潮一区二区免费视频| 99热日| 亲子敌伦对白在线播放| 俄罗斯一区二区视频在线观看 | 9久在线视频只有精品| 夜夜天天噜狠狠爱2021| 91精品久久综合熟女| 91欧美成人色站| 国产精品农村妇女| ?亚洲伊人伊成久久人综合网| 国产高清1234区| 久久亚洲人妻| 日本久久女同性恋视频| 色婷婷久久| 福利五区| 91干熟女| 一区二区视频你懂的| 超碰97人妻免费在线| 色色色色电影网| 后入式999| 狠狠色噜噜狠狠狠狠狠色综合久久| 2025亚洲男人天堂| 色吧91| 性站 | 5252色欧美在线男人的天堂| 男人的天堂免费| 日本韩高清无砖码22o| 夜色五月天| 97超碰欧美精品| 欧美激情片一区二区| 日韩一区二区精彩视频| 九九九九精品一区| 欧美少妇性爱网站| 美女黄色91| 伊人国产av| 国产精品成人蜜臀AV在线| 一级AAA片一区二区三区| www.一本大99| 色婷婷久久| 97在线观看播放视频| 97超碰9| 亚洲日韩欧美一区二区| 熟女人妻一区二区三区| 抽插一区二区视频| 99re只有精品| 亚洲欧美国产其他二区| 亚洲AV无码秘 蜜桃臀国精产品| jiujiujiujingpin| 日韩 人妻 精品| 国产精品一级片在线看| 成人五月天丁香激情综合| 亚洲脚交| 久久久国产护士丝袜美腿一| 亚洲欧美中日韩| 婷婷中文字幕| 欧美成人性爱视频大全| 中文字幕亚洲热播人妻| 超碰精品日韩欧美国产| 日本高清加勒比| 97爱爱影院| 中文字幕片| 婷婷色影院| 欧美成熟性爱精品| 伊人96在线| 国产av激情无码久久天堂| 麻豆AV短剧| 亚欧高清| 国产精品九九| 999狠狠综合| 日本一级特级毛片视频| 日本女厕偷拍| 婷婷成人五月天| 思思热影视| 不卡人妻少妇精品毛片一区23区视频 | 国内精品久久国产,www香蕉久久五月丁香,亚洲欧美日韩精品永久在线,日本精品一 | 色在线亚洲视频www| 国产久久一区二区| 97这里都是精品| AV一区观看| 999精品乱码| 亚洲成人久久一区二区| 日本国产二线女色| 天综合网欧美| 欧美日韩色综合网| 一区二区三区免费视频入口| 欧美最婬乱婬爆婬性视频| 人人做,人人操,人人摸| 香蕉久久国产AV一区二区| 乱伦Av网| 久久五月综合| 一区二区 电影 亚洲| 欧美亚洲美少妇一区二区| 四虎影视永久在线观看精品免费网站| 欧亚日本情色| 玖玖爱影院| 久干9操| 国产剧情一区在线观看| 欧亚揄拍偷拍精品视频 | 秋霞免费AV| 天天看,天天做| 大香蕉九九| 大香蕉在线视频15| 歐美一級亂黃99在綫精品| 夜夜综合| 一起草三级AV电影在线观看 | 东北女人高潮视频| 久久无码电影| 韩国轻伦国内自拍一区| 少妇久久久免费| 香蕉国产精品麻豆亚洲欧美日韩| 精品区国产区一区二区三区| 国产精品九9| 91 天天综合| 17c在线成人免费A片观看| 人妻AV 中文字幕的| 国产精品毛片| 亚洲欧美在线观看2021| 乱码人妻一区二区三区| 25国产精品免费观看| 国产AV人人夜夜澡人人爽麻豆| 丁香五月激情五月| 中文字幕av丝袜| 麻豆一区二区AV天美| 国产午夜激片Av毛片不卡| 色欲人妻一区二区在线| 国产精品999zyz| 骚女高跟AV在线| 久久秀这里有精品| 亚洲av无码国产精品字幕| 欧美色另类| 久久久久亚洲Av无码专区老牛影视| 午夜超爽| 欧美亚洲综合色| 走光一区92下载| a片 xxxx受爽视频| 久久亚洲AV无码专区国产精品| 久久久久久久人妻| 伊人 俄罗斯 a v| 亚洲欧美清纯| 91成人在线免费视频| 色5月婷婷| 欧美制服网站美腿丝袜| 亚洲三级网址久久最新| 一直超碰| 午夜操操操| 欧美日本天堂| 日本一久是| 久久高潮妇女视频| 欧美 色 亚洲| 国产福利合集| 欧美色97| 日韩成人精品| 久久高清欧美国产| 午夜福利视频在线一区| 素人播放一区| 青青草原综合久久大伊人精品| 丰满美女一级毛片在线播放| 麻豆尤物视频网| 5月婷婷6月六月丁香| 97色爱| 欧美亚洲91| 日韩一区二区精品视频| 亚洲涩涩| 成人亚欧免费视频| 久久久久元码视频| 99国产精品久久久在线播放| 一区二区三区麻豆| 亚洲一区日韩| 丝袜美腿制服人妻二区中文字幕| 啊好大好舒服| 久久精品国产72国产精品福利| 欧美日韩插逼视频| 婷婷涩嫩草鲁丝久久午夜精品| 亚洲国产青青| 欧美亚洲综合色| 久久性爱精品一区| 91精品导航| 久久綜合很很很| 免费无码国产精品v片在线观看| 久久9精品网站| 日韩性爱视频在线免费观看 | 97伊人网| 性爱视频久久| 九九九综合精品| 大香蕉视频啪啪啪啪| 99热精品在线| 日韩精品三区四区| 欧美日韩另类激情图片| 亚洲素人网| 国产传媒一区日韩| 精品区9| 噜噜在线| 日本人体九九九九九九| 亚洲夜夜欢无码一区二区| 亚洲五码一区二区三区| A 在线网址| 五月丁香社区婷婷日韩欧美精品影院 | 伊人热综合| 久操免费视频| 丝袜综合网| 神马麻豆福利院| 绯色一区二区三区不卡少妇| 蜜臀久久99精品久久久久久无删减| 91精品久久久久| 97久久久| 老外又粗又长一晚做五次| 成人av在线播放| 粉嫩粉嫩一区性色AV片| 激情丁香五月| 久草视频制服诱惑| 欧美国产操逼| 欧美性爱超碰97| 韩国一级做a久久久久| 蜜乳成人AV| 九九香蕉网| 国产有码一区| 精品无码产区一区二| 性生活无遮挡纯毛片在线看| 少妇久久久免费| 久久久青草青青国产亚洲免观精品高清完整版_97久久综合区小说区图片区,国精品 | 激情网色| 婷婷超| 韩日精品四区| 人妻娇喘 激情视频| 亚洲黄片免费在线播放| 国人欧美精品一区二区| 久久理论字幕视频| 蜜桃精品一区二区三区久在线| 91 综合网| 日韩色欲久久一二三四区| 少妇一线天久久久久久| 天天躁狠狠躁av| 日韩啊V| 人妻熟女午夜精品在线| 九九九九九九九| 国产黄色在线播放观看| 高潮内射在线| 五月天伊人网| 久久人妻精品| 国产麻豆91欧美一区二区久久婷婷国产精品 | 精品日韩中文在线| 丝袜夫妻自拍| 五月情色天| 曰韩精品九九无码| 亚洲中文sv| 人妻aa| 啊啊啊97视频| 美女9118禁| 亚洲色色色| 亚洲综合另类| 丁香五月久久| 天天做天天爱| 日本一区二区成人在线| 中文字幕在线播放2中文字幕在线观看2| 激情综合网亚洲| 中文字幕丝袜美腿| 日韩精品一区二区人人人| 亚洲色图亚洲无码强奸乱伦| 亚洲麻豆18发?| 被窝影院午夜看片无码| 精品国产一区二区三区久久久蜜臀 | 岛国小电影| 级做a爱无码性色永久免费| 丝袜美腿亚洲| 人妻人人澡人人爽人人| 午夜视频好爽啊| 青青青草伊人精品| 98色网| 亚洲啪AⅤ永久无码| 韩国毛片一区二区三区| 精品丰满人妻一区二区三区免费观| 精品国产乱码久久久| 久热久一区二区三区| 人妻系列无码专区中文有码| 欧美高清性猛交| 99热99色| 欧美性爱中文字幕无线码| 欧美日韩不卡传媒| 嗯嗯,好大,好爽,好骚| 爱我干综合| 人人玩人人添人人澡免费| 97丝袜亚洲在线播放| 免费一级a毛片久久久久久鸭绿欲 国产精品亚洲天堂网址 | 香蕉国产精品麻豆亚洲欧美日韩| 久热精品在线| 福利在线观看一区二区| 成人熟女视频一区二区三区| 中文字幕精品三级久久久| 人人爱人人乐人人操| 国产AV激情无码久久无码| 精品免费1| 亚洲综合另类色图| 99老司机精品视频在线观看| 一二三啪啪专区| 久久久精品网| 3571色综合一区二区二区| 欧美在线综合| 色噜噜精品一区二区三| 18禁久极品美女久久哦哟呀!| 国产精品不卡高清在线观看| 1024久久高清视频| 中文久久久| 蜜桃臀久久| 成人网站 免费观看| 五毛骚逼极品美女怕怕| 日本午夜精品理论片A级APP发布| 国产一区二区在线看| 国产亚洲 中文欧美久久| 国产黄色影片在线观看| 青青草无码视频| 国产11页| 天天草夜夜草高潮片| 欧美色老汉| 天天看片天天爽| xxx0国产在线播放| 91亚洲人| 1000午夜黄色| 色色丁香| 91视频伊人| 97精品人妻一二三四| 日本在线激情一区二区三区| 任我爽在线视频免费观看 | 夜夜久久| 国产大学生高潮在线播放 | 欧美一级色| 国产精品懂色tv影视免费观看| 欧美91网站| 99久久网站| 久久精品午夜国产亚洲AV无码 | 久久99午夜精品一区人妻| 亚洲图片第一页| 制服少妇欧美| 99精品无码| 黄片免费视频2019| 丝袜狂射91| 久久综合18p| 欧美网站免费| 亚洲欧美另类小说| 宗合情欲网| 六月丁香久久| 久久久久亚洲av综合波多野制衣| 密臀在线一区尤物| 加勒比海成人视频网| 欧美性特| 黄片免费看黄片免费看| 久久黄人人爽视频| 精品妇操一区二区三区| 射丝袜高跟鞋99| 色婷五月天| 黄色高清无码无码破解免费暗网| 翔田千里无码一区| www.男人的天堂| 9九九国产| 久久久久久久久久久久欧美日| 综合网色| 日本色色色视频| 亚洲熟女av中文字幕| 久久久久幕乱码| 2019午夜福利视频| 久久久久久久久九九久孕交| 色嘟嘟人妻天堂网| 正在播放:深夜激情大战,自带黑丝袜全力输出骚穴 | 日本 欧美 亚中文字幕| 精品无码久久久| 亚洲午夜av| 中文一区在线视频| 国内毛片国产专区二| 亚洲精品啪视频| 久操视频资源站公开| 91碰超| aⅴ日韩成人电影av在线免费看av大全 | 啊啊啊好大好深| 超碰在线日韩一区| 曰韩人妻中文字幕在线| 亚洲影视综合| 清纯唯美亚洲综合| 7777奇米影视久久| 久久五月丁香| 美女91在线观看| 久久啊啊啊| 国产欧美岛国精品一区| av天堂影视中文在字幕在线中文| 青青草国产亚洲精品久久| 使劲用力艹少妇视频一区二区| 少妇三P| 欧美最大综合网| 色色色日本| 久久精品99| 日韩欧亚中文在线| 亚洲啪啪综合?v一区综合精品区| 婷婷丁香九月| 欧美很很操视频| 色综合1991| 综合国产影视三级| www色色色com| 土豪酒店各种姿势玩弄极品幼稚| 欧美色日本| 大香蕉综合网| 人人潮人人摸| 亚洲国产综合久久天堂| 天天干1区2区在线| 亚洲情色综合| 自拍偷拍亚洲熟女妇人精品| 亚洲天堂一区二区久久| 欧美精品成人在线播放| 欧美一级A片在线看视频性色| 天天日夜夜| 2017天天操天天日| 成人a级高清视频在线观看| 国产自产一区视频在线| 精品91摸| 另类天堂| 国内精品999| 色噜噜国产精品视频一区二区| 日本性感人妻91| 欧美成人免费在线观看| 久久久com| 91在线国产后入风骚翘臀美女素人| 1240青青草一区二区三区视频天爱| 日韩探花精品在线视频| 九九九九九九九九九九九免费国产| 欧美熟妇视频| 欧亚日韩一区在线| 亚洲欧美精品一区天堂久久|