久久亚洲成a人片熟女精品色一区二区三区|国产精品视频第一精品视频|av天堂热无码手机版|亚洲?v无码久久无遮挡|国产精品偷伦视频免费观看国产|麻豆国产自产精品丰满熟妇|av无码av不卡一区二区|久久亚洲精品中文字

ARTICLE DETAIL

資訊詳情

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

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

PostgreSQL常用命令全解析:從連接到備份恢復與性能診斷 最近連續(xù)有好幾個剛接觸PostgreSQL的朋友跑來問我同一個問題PG database相關(guān)命令到底該怎么記這東西和MySQL不一樣命令散落在shell、psql、系統(tǒng)視圖里查個東西不知道查哪。這篇就把我實際用下來最頻繁、最容易繞暈的PG命令完整梳理一遍覆蓋連接、日常操作、信息查詢、備份恢復、權(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、備份恢復命令、權(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í)行。在有臨時復雜查詢的場景下這個組合比一條條敲要舒服太多。執(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)。但查詢物理存儲、膨脹情況、邏輯復制狀態(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. 備份與恢復生產(chǎn)環(huán)境最常翻車的命令組合備份恢復這塊網(wǎng)上教程不少但大多數(shù)人只講了pg_dump一條命令。這里我重點講的是命令怎么組合、恢復到另一個環(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恢復特別慢并且中途出錯很難續(xù)跑。我更推薦custom格式pg_dump -h 127.0.0.1 -U myuser -d mydb -F c -f mydb.dump-F c 生成的是一種壓縮的二進制格式可以用pg_restore靈活控制恢復哪些對象。custom格式還支持并行恢復恢復大庫時速度快非常多。并行恢復pg_restore -h 127.0.0.1 -U myuser -d targetdb -j 4 mydb.dump-j 4代表開4個并發(fā)任務(wù)恢復。任務(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ī)的恢復流程# 先建目標庫如果還不存在 createdb -U myuser -h 127.0.0.1 targetdb # 恢復custom格式備份 pg_restore -h 127.0.0.1 -U myuser -d targetdb -j 4 mydb.dump如果dump里包含了建庫語句你可以用--create選項讓它先建庫再連庫恢復但前提是執(zhí)行pg_restore的用戶必須有建庫權(quán)限。查看一個dump文件里都包含了什么對象不用恢復就能列出pg_restore -l mydb.dump這個列表輸出很長可以配合grep只看某類對象比如只看函數(shù)pg_restore -l mydb.dump | grep FUNCTION如果你只想恢復其中一張表pg_restore -t public.requests -d targetdb mydb.dump4.3 恢復翻車現(xiàn)場權(quán)限、擴展、版本三大坑我實際在恢復dump到測試環(huán)境時遇到最多的問題歸納成三個。第一個坑是owner不一致。原庫的對象owner是prod_user目標環(huán)境里根本沒有這個用戶恢復時直接報錯。解決辦法是加上--no-ownerpg_restore --no-owner -d targetdb mydb.dump這個選項讓恢復后的對象owner統(tǒng)一變成當前執(zhí)行用戶規(guī)避掉一大部分權(quán)限問題。第二個坑是擴展缺依賴。比如表里有jsonb字段或者用了citext類型恢復時目標庫沒安裝對應(yīng)擴展就會報type does not exist。普通文本格式的dump里如果包含CREATE EXTENSION需要執(zhí)行者具有超級用戶權(quán)限否則也會被跳過。恢復之前先把該裝的核心擴展裝上CREATE EXTENSION IF NOT EXISTS citext; CREATE EXTENSION IF NOT EXISTS uuid-ossp;第三個坑是版本跨度過大。PG大版本之間的二進制格式不兼容pg_dump出來的dump文件最好在大版本內(nèi)恢復。跨大版本遷移建議先用低版本自帶的pg_dump導出再到高版本用pg_restore導入方向不能反。高版本導出的文件去低版本恢復基本都會失敗。還有一個很實用的細節(jié)給備份文件做完整性校驗恢復完以后立刻跑一遍行數(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里預估的行數(shù)對比rows大比例偏差說明統(tǒng)計信息失效需要ANALYZE或者檢查索引判斷執(zhí)行計劃好壞最簡單的方法是找兩個詞Seq Scan和Index Scan。看到Seq Scan在表上掃了幾十萬行而你還期望它走索引那基本就是索引缺失、統(tǒng)計信息過期、或者SQL寫得讓優(yōu)化器沒法用索引??匆粋€例子上面SQL如果輸出里顯示requests表做了Seq Scan且掃描了50萬行user表也做了Seq Scan那這個查詢大概率會慢。解決辦法一般是在requests.user_id和requests.created_at上建復合索引并確保統(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)預加載了直接查詢即可。查詢執(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)罩尽P薷呐渲肁LTER 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ù)文件讓崩潰恢復更快。平時不需要手動執(zhí)行但如果在做某些備份或要關(guān)閉實例之前執(zhí)行一次可以縮短恢復時間。這也算是我見過的命令存在但很少被正確使用的一類。最后說個經(jīng)驗這篇文章列的命令我在真實項目里都實際用過。如果你現(xiàn)在剛起步我的建議是先別急著把每條命令背下來動手執(zhí)行一遍然后按自己的使用場景把這個速查文檔沉淀下來。把五個場景練熟就夠了連接、查詢信息、備份恢復、權(quán)限、慢查詢排查。等這五塊熟了剩下的都是隨用隨查。另外想強調(diào)一個總的習慣凡是涉及生產(chǎn)環(huán)境的命令先在一個空庫里試一遍。特別是DROP、TRUNCATE、VACUUM FULL這類重量級操作試完你才會對它的輸出和影響有切身體感。數(shù)據(jù)庫命令的價值不在知道而在用對。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
91操熟女| 青青草男人天堂| 精品高清牛人盗摄一区二区三区中文字幕A片免费在线观看 | 8x福利精品第一福利视频导航| 亚洲色图a| 久久久97| 91干熟女| 亚洲精品成人激情在线| 亚欧Av| 久久只有精品| 色逼综合| 91亚洲欧洲| 精品久久久不卡一区二区| 97国产超湿| 国产成人久久久精品免费AV| 黄片不用下载在线观看| 国产亚洲精品美女久久久m| 久久久久国产精品久久久| 91无码人妻精品一区二区三区蜜桃| 高清不卡视频| 春色校园综合网| 婷婷色综合| 色婷婷五月综合激情中文字幕| 亚洲国产精品99久久久| 影音先锋乱伦资源| 日韩精品1区2区中文字幕| a片在线播放| 91欧美经典| 一二三四区操操Av| 99久久久| 好爽视频在线观看视频| 男女啪啪网站免费视频| 亚洲 欧美 日韩 国产一区二区| 久草电影网| 国产精品电| 国产日韩欧美| 久操免费视频| 亚洲国产丝袜熟女av| 青青在线视频日韩欧美| 亚洲无码偷拍| 福利伊人玖玖国产| 妺妺跟我一起洗澡没忍住| 免费精品福利在线观看| 五月丁香影院| 亚洲性少妇| 老女人91| 性色亚洲| 伊人五月天激情| 婷婷丁香五月激情啪啪| 欧美在线啊啊啊| 男人的天堂在线| chaopen97久久| 欧美极品| 97国产高清视频在线观看| 国产呦精品一区二区三区下载| 中文字幕av亚洲在线| 99久久久久| 精品少妇后入一区二区三区四区人妻巨乳 | 国产激情在线| 97 亚洲 日韩 欧美 在线| 中文字幕视频2区| 97天天操天天干| 亚洲精品一卡二卡三卡福利视频网站| 日日干日日摸| 亚洲熟女乱色一区二区三区 | 人妻丝袜肏逼| 国产强奸乱伦第1页| 国产丝袜美女在线一区| 亚洲欧美经典一区二区| 亚洲黄日韩无码专区| 成人精品欧洲亚洲| 午夜精品久久久久久久久久蜜桃| 亚洲美女 晚间男人天堂 | 国产精品久久久久久照片| 被体育老师抱着c到高潮| 五月丁香啪啪啪| 午夜呻吟欧美| 中文字幕欧美丝袜07资源| 热久久国产| 蜜桃色色网站视频三区| 蜜臀va69| 黄色大香焦1级‘′‘| 在线观看一卡二卡| 怡红院久久老司机| 在线看片国产精品每日更新| 一区二区精品更新提醒| 国产91福利小视频在线观看| av在线资源| 久久九精品| 精品69网| 91狠狠综合久久| 欧美日韩青操| 少妇人妻好深太紧了vr91| 五月天激情小说| 破处bbq| 高清国产性猛交xxxx乱大交| 久久欧美按摩999| 97视频新免费| 人人摸人人干人人拍97| 粉嫩小泬久久久一区二区| 久久久久亚洲| 97精品国产97久久久久久免费| 国产深喉| 国产精品熟女丝袜一区二区| 情色五月天就去干| 偷看洗澡一二三区美女| 色天天野狼综合社区| h无码动漫在线观看| 日日夜夜青青草母狗| 日本色色色网站免费看不卡| 欧美色棕合| 蜜臀一区二区三区亚洲最新章节在线观看 - 高清蜜臀一区二区三区亚洲全集播放 | 激情五月天丁香社区| 色女99一级片在线观看| 天天射天天操天天干天天吃2018| 欧美精品另类人妖xxxx| 伊人网青青| 国产精品亚洲四五区在线观看| 超碰97护士| 嗯嗯啊中文字幕| 青青草色AV| 无码国产精品午夜不卡(| 妇女乱色二区| 艳美熟妇先锋一二三区| 香蕉欧美| 国产99999久久精品| 日本操BAV| 97在线资源| 亚洲图片欧洲图片aⅴ| 爱爱久久| 色五月首页| 嗯嗯不要 视频| 99热这里| 芊芊操逼视频无码| 亚洲人精品久久久| 欧美.亚洲.另类.丝袜.制服.诱惑| 神马麻豆福利院| 欧美日日网| 国产精品国产亚洲区艳妇糸列| 久久综合久久综合人久久夜精品| 中文字幕AV乱伦| 神马久久网| 岛国艾薇凹凸视频天堂| 久久婷婷电影网| 91爱做| 国产精品久久伊人| 九九AV| 97色视频在线| 久草婷婷| 综合久久久久久久综合网| 欧美精品亚洲精品日韩传电影| 在线观看日韩av不卡| 人妻少妇精品| 少好三P| 色五月婷婷在线| 黄色香蕉视频网站一区| 99精品在线| 国产四虎在线| 免费久久精品麻豆一区二区av| 女生91网站| 91久久堂| 精精夜夜| 激情综合五月| 97国产成人精品免费视频| 亚洲精品国产精品成人| 极品出轨视频网站| 91挑色欧美| 欧美色五月| 国产不卡免费在线视频| 试看日韩黄片| 九九热精品视频六| 粉嫩久久久极品| www.四虎在线| 蜜臀久久久久久999| 干干干天天| 中文字幕97| 亚洲同性aV综合| 亚洲欧洲第二视频在线观看色图| 超碰精品| 精品人妻夜夜草| 久久一二三四五六七八九区区区 | 加勒比海成人视频网| 中文啪啪视频| 德国一二三不卡| 久久久久久久人妻| 色9999日韩国产| 国产日韩欧美中文在线播放| 青娱乐999| 91欧美情色| 国产热av| 日韩八十路老熟女| 妇女乱色二区| 97chaopenrihan| 天综合网欧美| 欧美日韩人妻婷婷一区| 91久久久久久久| 99只有精品| 欧美日韩一干二干| 色欲人妻一区二区在线| 草久久久| 亚洲诱惑| 日本 情色 1区2区3区| 亚州综合色图| 天天激色| 国产97/欧美| 亚州色图欧美色图| 欧色网址| 五十路一区无码| 精品亚洲天堂| 亚洲āv网址在线观看| 国产成人亚洲精品无码最新在线| 强奸乱伦 亚洲一区| 色黄污美女啪啪啪免费网站| 欧美性爱日韩性爱| 操一区| 黑丝少妇| 欧美色图片91| 精品国产a∨一区天美传媒| 国产精品97超碰| 亚春色色| а√天堂资源官网在线资源| 国产精品视频麻豆入口| 超碰国产在线| 97内射偷拍| 欧美超碰人妻97| 婷婷探花久久精品一区| 人人操,人人液| 自拍偷拍草一草| 特级毛片特黄久久免费看| 欧美黄色片AAAAA| 成人资源中文字幕在线观看天天| 天天日天天射天天干| 精品九九九九九九九九九| 中文字幕欧美日本乱码一线二线 | 欧中美三级一区二区三区| 国产一二三福利视频网| 日韩熟女操逼| 国产又爽又黄| 最新中文字幕av| 成人久久久精品| AV中亚| 国产精品视频一区二区三区八戒| AA丁香综合激情| 国产农村妇女精品一二区| 91网站18+| 欧差乱伦二三| 国产福利精品最新在线| 日本三级人妻a人妻一在线| 欧美综合网1| 亚洲动态色图| 天天色播亚洲综合网站| 亚洲国产剧情少妇激情| 怡红院亚洲怡春院av| 人人操欧美风骚| 黄色激情电影在线观看| 九九九九久久久| 天堂射| 欧美性暴力| 国产白嫩漂亮KTV在线| 久久精品国产精品亚洲艾通辽熟妇 | 亚欧操逼片在线观看| 91啦人妻| 久久久艹艹艹| 人妻熟女一区二区三区视频| 女人午夜视频777| 国产日韩精品无码去免费专区国产| 国产精品一级毛片不卡视| 男人的天堂亚洲| 日本黄页视频在线观看| 日韩欧美大力操| 中文字幕 一区二区 亚洲无码| 人人妻人人色一区二区三区| 人妻中文字幕精品无码| 久久一留热品黄| 熟妇人妻精品一区二区| 国产九月婷婷| 欧美色性情| 国产97视频免费观看| 最新av在线| 日韩成人性日韩成人性爱视频在线免费观看| 91人人臊| 色香91| 熟妇的味道HD中文字幕| 91丝袜激情在线| 肏逼视频日本| 青青青操| 中文乱码字字幕在线第5页| 欧美亚洲丝袜人妻制服99| 青青草影视蜜久久| 99热99在线| 中文字幕第7页| 人人看人人摸人人色| 超碰久久精品| 91黑丝在线播放| 久久久啊啊啊| 91ise欧美| 男人久久天堂| 少妇一级婬片免费放一级a性色.| 色大香蕉97N| 强奸国产在线| 99999这里都精品| 26uuu国产成人综合| 久久久精| 五月天婷婷激情| 丝袜足交视频| 麻豆久久久久久久久丝袜 | 精品国产乱码久久久久久口爆网站| 蜜桃色院一区久久 | 青青草中日韩在线| 制服乱伦| 免费成人自拍视频在线| 99综合自拍| 国产精品久久99日日| 国产三级中文字幕粉嫩| 久久国产三区| 丁香六月激情| 久久久久久性爱免费视频| 在线女人91| 可以在线观看的黄色网址| 久久久久96| 精品妇女一区二区三区| 成人av影院在线观看| 一起草av| 亚州操操穴网| 日韩操p| 天无日色综合| 强被迫伦姧在线观看无码网站| 欧美有码激情视频一区二区三区| 精品久久99| 大香蕉久久| 伊人久久大香蕉线AV五月天| 婷婷伊人网| 精品人妻一区二区三区日产| 97一区二压| 欧美日韩91| 国模私拍一区二区三区神乳| 久热最新在线杭州| 日韩午夜国产| 99精品免费| 99久国产精品午夜性色福利| 国产国产亚洲一二三久久| 狠狠中文字幕| 天天做日日爱夜夜爽| 亚洲人妻在线精品| 亚洲人人夜夜澡人人爽| 国产农村妇女精品一二区| 国产综合操逼高清| 精品高清一区二区三区三州| 欧美精品久久96人妻无码| 女上位精品在线| 欧美日韩国第一区| 91大学精品激情戏| 黑人黄片在线免费观看| 在线欧美69V免费观看视频| 激情一区二区| 麻豆色99999| 麻豆婷婷成人一二三| 99热色精品| 黄色电影在线播放综合网站| 日韩兔费看黄片| 91中文字幕制服丝袜免费视频| www.大香| 欧美一区二区三区不卡高清视频| 97久久综合网| 99re综合伊人| 亚洲欧洲第二视频在线观看色图| 亚洲欧美综合色| 2010男人的天堂| 天天操天天舔| 日韩av影片在线观看| 亚洲精品无码久久AV| 国产精品无码成人精品| 人妻丝袜美腿中文字幕| 97色亚洲| 国产精品96| 蜜臀久久99精品久久久久久酒店| 九九热精品视频六| 婷婷20月天青娱乐| 欧美操逼录像国产黄色国产| 蜜臀Av一区二区三区| 欧美在线|亚洲| 91久久久老司机| 国产91精品久久久久久久网曝门| 极品粉嫩一区二区| 欧美18禁91| 久久久不能久久久久| 色综合美国| 操狠狠| 亚洲精品久久久久久久久豆丁网| 亚洲色图 欧美热图 清纯唯美 另类自拍 | AV天天综合| 久久久啊啊| 91精品人妻一区二区三区蜜桃臀| 成人自拍三级在线观看| 伊人网青青| 影音先锋少妇| 成人国产精品三级A片| 综合五月婷婷| 白丝1区2区3区| 91撸色网 玖玖网 欧美| 九九久久国产精品怡红院| 国产农村妇女毛片精品久久| 东京热男人的天堂| 日欧亚洲二三区大片不卡| 秋霞欧美性爰视频| 亚州精品一区二区三区香中文字幕在线| 首页亚洲国产高跟丝袜诱惑视频| 亚洲、日韩、综合、另类| 啊啊好多水| 老色鬼成人精品视频下载大在线观看| 欧美综合天堂| 欧美日韩午夜精品一区二区三区| 国产 热久久久久国产精品| 日韩性爱播放| 亚洲瓯美色图| 最新制服中文第一页| 精品免费视频国产一区| 亚洲熟女av日韩熟女| 精品女人999| 蜜桃精品视频一区| 久午视频| 岛国AB视频| 大香交伊人网| 屁股久久久久久久久| 78久久| 人人妻人射| 综合色图亚洲欧美| 久久九九久精品国产尤物|国产精品爽黄69天堂A片潘金莲,国产亚洲精品第一综合 | 青青免费在线视频一区 | 男人的天堂,欧美亚洲另类国产日韩,日本高清一区二区 | 我要色综合网站| 久久久久久亚洲Av无码精| 人妻中文字幕日韩电影| 国产不卡片| 人妻天天爽夜夜爽2| 伊人网免费视频| 婷婷啪啪| 久久9免费视频| 无码区蜜乳| 青青草视频久久| 香蕉免费一区二区三区不读 | 亚洲欧洲网站免费观看| 亚码人妻| 亚州熟女乱伦| 女优视频第10页| 涩亚洲欧洲| 综合五月婷婷亚洲一区| 欧美一级欧美三级在线观看| 97在线免费看视频| 私色综合网| 伊人欧美大香蕉视频| 青青操综合网| 亚洲综合九| 素人一区二区三区日韩| 69综合网| 国产Av超碰| 色噜噜人妻av 中文字幕| 夜夜欢天天干| 日日干夜夜干| 日韩兔费看黄片| 99亚亚热| 欧美一级欧美三级在线观看| 三上悠亚在线毛片91| 亚洲中文字幕噜噜噜久久久| 韩日欧亚a级| 久久99视频| 亚洲欧美国产精品久久久久久久| 操逼日韩无码| 变态综合色| 丁香五月av| 亚洲熟女av中文字幕| 99操99| 国产精品扒开腿做爽爽爽视频| 五月天婷婷久久| 国产又粗又长又大的视频| 97精品综合久久| 亚洲综合色图欧美| 蜜桃臀av在线观看| 在线免费观看高清无码视频| 91色图片| 成年女人黄网站| 青草伊人久久| 成片免费观看视频大全| 91东北熟女| 久久最新视频免费观看| 蜜乳AV网址| 亚洲综合在线91| 欧美乱色| 精品人妻1区| 欧美在线视频播放| 婷婷五月天av| 日本乱人伦片中文三区| 天天操天天谢| 久久综合18p| 国产一区免费午夜视频| 麻豆天天躁天天揉揉AV| 丝袜制服字幕在线| 精品v日韩欧美国产| 五月丁香久久| 美国日韩黄片| 熟女露脸激情自拍视频| 色综合美国| 秋霞成人一级在线观看| 欧美亚洲中文字幕| 麻豆一区二区三区精品| 日韩成人免费电影| 久久亚洲欧美中文字幕国语| 免费视频观看60秒| 伊香蕉综合久久久久久久噜噜噜| 麻豆精品三区视频| 激情自拍 校园春色| 色爱三区| 色爱综合网| 日本国产亚洲一区在线观看| 丰满人妻一区二区三区蜜桃视频| 九九热这里只有在线精品视 伊人草 成人菠萝蜜视频在线观看 | 大香蕉乱级| 少好三P| 综合国产97| 黄色毛片A片| a男人的天堂久久一级A毛片| 欧美97av| 加勒比五月天| 久久深夜无码| 丝袜夫妻自拍| 婷婷激情啪啪| 国产热RE99久久6国产精品首 | 亚洲中文字幕精品一区| 天欧美在线| 久久只有精品一区二区三区| 国产剧情一区在线观看| 激情专区综合| 手机在线人成免费视频| 欧美自拍偷拍综合图片| 久久97| 欧美激情内射| 热热色AV| 久久久久久九九九九九九| 综合干干干av久久久综合网| 在线观看十八禁| 亚洲第一综合| 日本岛国黄色网址| 精品伊人久久久大香线蕉小说| 精品人妻1区| 性爱网站一区二区| 国产亚洲精品一区二区三区| 玖草在线视频| 另类图片综合| 国产视频人人网| 婷婷涩嫩草鲁丝久久午夜精品| 午夜啊啊| 91性情| 久久精品熟妇丰满人妻99| 东京热,男人的天堂| 青青草原av| 欧美黑人与女人91| 玖玖久久久| 蜜臀久久久99久久久久 | 亚洲欧美激情小说| 亚洲欧美91| 亚洲高清欧美总合| 日本天天干天天操一区| 伊人久久AV诱惑悠悠| 啪啪啪综合| 亚洲天堂综合AV| 97天天摸天天碰| 情侣开房子拍 日韩无码 女的很漂亮| 正在播放:深夜激情大战,自带黑丝袜全力输出骚穴 | 91爱综合| 亚洲成人精品久久久| 日日夜夜国产综合| 老鸭窝日丰县女人| 欧美91网| 久96热在线观看视频| 国产亚洲深夜激情| 色噜噜精品一区二区三| 激情视频网址| 欧美久久婷| 情色五月天网| 午夜美女诱惑电源网| 国产精品96| 9国产超碰| 九月丁香综合网| 亚洲天堂女优在线| 亚洲精品一卡二卡三卡福利视频网站| 九九久久精品| 欧美日韩国第一区| 欧美超碰人妻97| 女生看匆91网站| 亚洲欧洲av影音| 国产福利在线视频网站| 中文字幕永久在线| 午夜福利在线视频1000| 日本二区不卡| 八戒午夜福利理论片| 日本东京热大香蕉a片| **一级毛片国产| 日韩无码操逼片| 亚洲午夜福利视频| 99国产精品在线观看| 一区二区亚州激情久婷婷欧美| 超碰在线免费一区二区三区| 97人人夜夜精品视频| 国产超碰97| 精品视频在线观看精品| 久操视频资源站公开| 国产不卡精品91| 久久精品99| 香蕉国产精品麻豆亚洲欧美日韩 | 粉嫩国产精品久久粉嫩| 五月天人妻综合| 欧美视频一| 狠狠干狠狠色| 亚洲涩图欧美| 日本欧美韩国国产在线| 美女露胸露屁股| 国产精品另类一区大香蕉| 欧美日韩黄片精品在线| 欧美色棕合| 天天性射网| 国产亚洲精品av一区| 97大色网| 日本熟妇浓毛hdsex| 亚洲精品色| 中文字幕av片| aaaa少妇高潮大片| 久久动漫精品视频这里只有精品| 久久久久久久免费A片国产成a人亚洲精∨品无码 | 欧亚性爱视频免费看| 亚洲中文字幕日产无码久久| 久久日本熟妇熟色一区| www色婷婷| 久久99干一本高清| 亚洲人妻中文高清| 99re在线视频国产| 太久视频| 91少妇通奸网站| 黄色区免费观看中文字幕| 91久久国产综合精品| 性爱综合一区二区| 亚洲免费97免费| 日婷婷| 免费人人搞97| 亚洲国产欧美一区二区潘金莲| 亚洲色欲一区二区三区| 日本999精品视频| 台湾一区国产高清在线| 亚洲精品天天影视综合网 | 久久精品无码一区二区三区| 噜噜吧,噜噜色,噜噜| 夜夜春夜夜操| 欧美操人| 欧美黑人猛交春色影视大全| 快播久久人人aV| 久久久久亚洲AV无码专区少妇| 狠狠躁AV| 男人天堂黄片| 日韩色女精品| 99久热| 欧美劲爆第一页| 久久久久久久极品香蕉视频| 成人免费性爱视视| 亚洲自拍另类丝袜综合| 亚洲第一免费视频| 精品白丝一区| 久久人人妻| 国产福利视频精品视频| 熟妇国产免费一区| 日本色色网| 亚欧色图在线激情| 亚洲综合性网址| 自偷自拍的亚洲视频| 男人的天堂免费| 一区麻豆 高清中文字幕| 熟女乱伦A| 精品少妇99| 超碰99热中文字幕| 人人透人人操| 成人av性爱电影在线观看| 欧美激情久久久久| 淫妻综合网| 91午夜无码| 操熟女91| 五月开心久久AV官网| 国产一级片| 亚洲精品国产精品乱码不卡| 欧美系列在线一区二区| 白丝一区| 国产精品69久久久久孕妇欧美 | av天堂加勒比| 中文字幕乱码人妻一区二区三区,99精品| 国产宅男宅女在线观看| 中文字幕三四五区| 亚洲综合校园春色| 91啪9色| 国产日本久久免费精品| 大二网站亚洲| 香蕉99秘 一区精品蜜桃臀| 久久人爽| 嗯~啊~快点 死我视频| 国产亚州精品美女久久久免费| 欧美综合天天| 久久97视频| 亚洲日韩东京热一区| 国产超碰国产97| 天美麻花大全视频| 操逼片国产| 中文一区二区三区影院| 日韩日韩日韩-国产乱码精品一区二区| 色哟哟-国产专区| 一级黄色影片| 91黑人无码激情在线| 欧美日韩黄片精品在线| 福利视频合集| 欧美日韩亚洲天堂| 亚洲AV不卡在线观看| 99re95| 久久久精久久久| 极品色社| 热久久这里只有精品| 亚卅熟女乱色| 国产福利小视频高清在线观看| AV麻豆免费一区| 男人的天堂 在线一区| 国产精品久久泡妞网站| 91精品操美女| 自拍第一页| 爱丝福利| 91精品国产91久久久久久久久久久久| 啊啊啊好疼| 欧洲自拍色图gif在线| 欧美婷婷久久| 成人日韩中文字幕| 亚洲欧美性生活| 在线天堂999| 尤物av网站| 久久综合精品一区二区三区| 国产精品对白内射| 久久夜色一区二区| 久操九九九九九九九九九九九九九九九九九九九九九九九九九九九九 | 人人透人人操| 婷婷五月色| 国产玖玖| 日韩欧亚太美不卡| 91成人国产综合久久精品蜜月| 国产午夜福利视频在线| 青青草精品| 色男人色天堂东京热| 日韩不卡网操逼中文字幕日韩| 国偷自 一区| 夜间福利片1000无码| xxx0国产在线播放| 欧美精品久久久久久久久88| 中文自拍欧美影视| 色情婷婷| 久操高青| 超碰人妻中文在线| 九九九九九九九九九九九蜜桃| 久久久成人免费av电影| 高精欧美色| 91日韩| 亚川综合视频| 欧美午夜一区二区三区| 超碰91在线| av优播| 嗯嗯啊啊视频一区二区三区| 欧美与日韩97| 美女黄站| 中国一级操逼视频| 极品极品色影院| 青青11操操操操操操操操| 国精综合一二三区影视| 欧美综合狠| 亚洲色欧美| 精品一区二区在线针对华人免费观看这里只有精品免费观看 | 熟女突然公开看18禁影片| 五月天激情小说网| 男生女生啊啊啊啊| 骚货操死你| 欧美日韩午夜精品一区二区三区| 国产成人手机视频激情| 999久久久精品国产| 人人搡人人肉久久精品| 97chaopengongkai| 久久av一级av少妇av高潮| 91碰碰碰| 日韩色女精品| 久久在线观看免费视频| 日本123区操B视频| 97精品视频免费| 98久久超碰| 国产精品久久久久亚洲av| 五月天色图影视| 亚洲男人的天堂网| 日本淫乱女一区二区三区视频| 亚洲AV操| 亚洲大色堂| 中文字幕欧美丝袜07资源| 国产精品一级片在线看| 伊人色综合超碰| 黄色成年| 女人双腿搬开让男人桶| 国产精品视频播放| 免费a v| a久久| 91男女| 欧美一区二区三区另类精品| 韩国轻伦国内自拍一区| www.91视频网| 国产乱伦一二三区| 91色堂| 在线观看高清AV| 精爱久久| 91精品国产91久久福利| 久久婷婷苹果| 精品人妻av在线播放| 欧 美 自 拍 偷 拍| 99精彩视频| 大香蕉欧美国产日韩高潮| 人人搞人人插人人操| 久久99视频| 国产精品一级二级在线| 香蕉热人人精品| 青青草视频在线观看一区二区| 亚洲图片另类| 欧洲色| 国产9熟妇视频网站| 国产精品宅男免费| 亚洲诱惑| 曰韩操B| 啊啊啊快操我视频| 久久亚洲欧美中文字幕国语| 午夜成人福利影视| 丝袜人妻av一区二区| 久久9亚洲| 五月丁香黄色网| 男人的天堂成人的社区| 思思热一热婷婷热一热| 久久鲁夜| 欧美91视频| 亚洲天堂人人妻| www.99中文字幕| 天天操美美| 在线精品福利免费播放| 五月天九九日国产精品一区二区三区| 在免费jIzzjIzz在线视频| 九七毛片九九毛片| 久操不卡视频| 96精品久久| 福利风月五月天影院| 欧美性爱第一页久久| 高清不卡国产| 97在线观看播放视频| 在线观看午夜婷婷久久久久清性观看| caoni国产亚洲av| 97资源站国产精品| 国内91熟女人妻丝袜天天精品视频在线| 啊啊啊爽爽| 少妇与黑人高潮在线| 福利社区午夜一区二区| 天天日熟妇| 天天流夜夜操| 中字幕人妻一区二区三区| 加勒比海成人视频网| www.色操逼| 91亚州| 欧洲精品久久| 狠狠干狠狠色| 国产日韩无码一区二区三区久久区| 欲香欲色天天天综合和网| www成人啪啪18秘 免费| 91啪啪| 中文字幕超碰CAO| 婷婷亚洲天堂| 欧美不卡在线一区二区| 毛片麻豆91糖心精品毛情片| 99久久综合| 国内毛片无遮挡国产| 人妻人久久精品中文字幕| 校园春色 男人天堂 | 五月婷婷综合网| 国产精品白领在线观看| 天天综合网~91入口| 天堂精品在线| 亚洲AV无码黄色强奸| 精品传媒在线一区| av东京热男人的天堂| 五月丁香影视| 色黄色美女大长腿午夜视频| 超碰97伊人| 熟女网站最新| 天天肏美女| 欧美性爱精品一区二区| 奇米四色网| 欧美 亚洲 在线| 土豪酒店各种姿势玩弄极品幼稚| 91蜜臀熟女| 干婷婷综合网| 中文字幕日韩电影人妻| 97超碰香蕉| 97超碰色中文字幕| 中文字幕88av在线| 欧美日韩性感| 91色婷婷综合久久中文字幕二区| 精品中文字幕一区二区| 蜜臀久久99精品久久久电影| 伊人网在线点播| 蜜臀亚洲综合一二三四区| 色av中文字| 亚洲宅男天堂| 女人被添高潮免费视频| 欧美精品一区二区少妇免费A片 | 熟女乱伦二区| 亚洲一级特黄大片在线播放91| 五月丁香黄色网| 亚洲欧美黄| 欧美92| 淫纸中9区| 97欧美色| 肉丝中文无码高清| 熟女高潮合集-永久久久-成人AV | 欧美精品三区| 97超碰免费人人性爱| 九九九综合精品| 婷婷香蕉欧美在线一区二区三区 | 色汉综合| 色图综合| 青草精品视频-日本久久久久网站| 亚洲精品乱码久久久久久蜜桃麻豆| 91精产一区二区三区| 欧美性爱一区| 99热在线不卡| 欧美日韩婷婷中文| 欧洲乱码视频| 欧美日韩青操| 中亚黄色三级大片 | 在线国产探花| 国产无马av| 亚洲综合五月天| 婷婷五月天福利| 五月天伊人| 欧美久久九九| 成人AV素股で擦久久| 性感女人网页在线观看视频| 天天看综合网| 日日干夜夜操视频h| 99青青草国产视频| 欧美性爱网97| 福利大香蕉| 91狠狠狠| 天天肏天天干| 亚洲天堂五月天国产| 亚洲一区二区三区不卡国产欧美| 一类av片在线看| 99久久精品无码一区二区| 1024人妻熟女一区二区三区| 日韩性爱小视频在线观看| 99热最新| 国产天天骚| 欧美综合制服在线| 丝袜天堂网| 男人的天堂99| 乱伦熟妇一区二区| 色婷婷激一区二区三区 | 日本一级性爱| 97色干| 美女的肌被草喷水视频| 97干综合网| 97视频播放| 日韩极品无码B| 在线中文字幕极品av| 激情五月综合| 啊啊啊啊二区好大| 亚洲色图第四色| 精品黄色电影| 免费人成在线观看网站品爱网| 女人双腿搬开让男人桶| baisiav| 超碰伊人在线| 少妇久久久| 91三级理论片播放器| 天天欧美欧美亚洲网| 伊人操操| 狼人狠干| 凹凸久久人人| 女同亚洲欧美一二三区久久电影| 今日头条成人一区二区三区四虎精品| 久超碰这里只有精品| 大香蕉欧美| 中文久久爆乳| 久久综合精品一区二区三区| 夜夜嗨一区二区三区三州加勒比| 1769成人国产精品视频| 最近2019中文字幕国语免费版| 蜜臀久久久久久999| 亚州图片第一页| 2024黄色视频| 久久婷婷亚洲| 在线观看视频91| 欧美色图20p| 日韩人妻一区二区精品| 9 7超碰在线免费观看| 天美传媒麻豆一区二区三区国产精| 亚洲色欲天天天堂色欲网女| 屌逼传媒| 99久在线精品99re8| 黄色大片免费在线| 999在线电影香蕉| 99久久免费看精品国产一区| 伊人精品久久网站| 91九色丨国产丨爆乳| 超碰在线免费一区二区三区| 国产第25页在线观看| 色婷婷蜜臀av| 色欲天天综合久久久无码网中文| 99色色网| 蜜桃精品视频一区二区三区| 国产成人自拍视频视频| 7月婷婷综合| 国产剧情在线| 丁香五月激情综合| 98超碰欧美| 久久精品色欧美aⅴ一区二区| 成人熟女区| 少妇高潮流水av免费| 操人妻丝袜高跟| 国产福利合集| 丰满欧美少妇| 九九九九久久久久| 欧美毛片在线网| 俞拍久久国应视频| 五月天激情婷婷| 色妺妺AⅤ| 95人妻爽爽人人做人人澡| 2017天天操天天日| 97久久久| 亚洲人妻日日日| 五月婷婷激情网| 天天干18禁| 97久精品| 亚洲日韩人妻中文字幕一区| 久久秀这里有精品| 国产肏逼网站| 99综合自拍| 国产日韩欧美中文在线播放| 国产亚洲色婷婷99精品91| 操逼免费视频无码国产| 校园春色亚洲无码| 91精品无码人妻系列| com 首页 18岁 禁区 女优 免费 精选 同城| 很很热性爱视频| 就去色综合| 久久久草成人网站久久久草成人久久久草久久久 | 日本女人久久久| 日韩人体偷拍| PMv在线观看| 色娱乐色呦呦夜夜夜夜av| 免费啪啪一级视频| 欧美啪啪天堂| 久久国产精品91| 五月天婷婷在线看| 岛国999| 狠狠综合网| 91少妇人妻| 亚州再线| 中文字幕亚韩| 青青草依人大香蕉| 亚洲欧洲小说图片视频 | 超碰人妻中文在线| 国模少妇一区二区三区| 97日韩超碰超碰中文字幕| 九九久久久久久爱| 精品视频久久区| 日本中文字幕在线视频| 亚洲综合九九| 成人一区二区三区四区| 日本精品一区二区中文字幕| 成人久久久| 少妇内射www在线观看视频 | 日韩欧美麻豆| julia在线观看久久| 久久成人国产| 啊啊啊免费视频| 青青草成人视频在线观看二区| av凤凰久久久| 自拍偷拍第26| 中文字幕第二页| 亚洲、日韩、综合、另类| 日韩一性一交一A片俄罗斯| 91亚洲影视| 亚州综合图片| 天美av在线观看| 一级特级aaaa毛片免费观看| 友优传媒精品在线一区二区| 国产精品密臀网在线观看| 超碰免费在线| 国产aⅴ无码片毛片一级网站| 天天射日日干| 肉丝无码中文高清| 亚洲91亚洲| 色情综合网| 国产三级中文有码在线视频| 天美传媒婬乱| yazhououmeizongya| a人欧美综合天堂麻豆| 五月天色五月| 在线观看亚洲专区| 日韩性爱一级片| 97精品全部| 国产精品午夜福利视频| 九九九综合精品| av九九| 操逼网免费无码视频| 欧美日韩另类在线| 黄骗免费网站| 99re6在线视频播放免费精品| 亚洲成人妻日韩在线| 神马久久久久眼| 丁香五月婷婷五月| 国模少妇一区二区三区| 国产一区二区三区视频在线看| 91亚洲网| 色97干| 精品人妻一区二区三区四区| 久久亚洲天堂| 亚洲鸥美色图| m欧洲一级午老| 亚洲限制级在线| 久久久工口| 国产在线76页| 婷婷99狠狠躁天天躁| 国产 三级自拍| 日本熟妇人妻中出视频| 免费夜夜爱黄色视频毛片| 强上我不卡卡| 熟女丝袜视频| 亚洲色吧网| 国产精品色色| 久久,精品一二三| 五月婷婷综合网| 开心激情站| 久操大香蕉手机视频在线看| 操操啪| 综合熟女| 久久极品一区二区| 久久亚洲影院一区二区| 日韩女优中文字幕| 欧美熟妇视频| 日本天堂网| 台湾肥佬网一区二区三区| 久久精品一区| 性饥渴少妇av无码毛片| 国产午夜精品在线观看| 国产偷拍网站| 亚洲一区日韩精品中文字幕| www久久国产精品| 人妻啪| 国模无码一区二区三区在线| 国产女人操逼视频| 国产福利精品最新在线 |