国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

MySQL視圖count速度優化

瀏覽:89日期:2022-06-15 15:02:59

問題描述

背景:程序列表頁展示信息,需后臺多表關聯讀取視圖,視圖內sql已優化(索引、語句),外層增加查詢條件后速度基本一致。VIEW:

CREATE VIEW aASSELECT *FROM b FORCE INDEX (`idx_b`)JOIN a ON a.CId = b.IdJOIN c ON c.CId = b.IdLEFT JOIN s ON s.No = c.NoLEFT JOIN d ON d.CId = a.Id AND d.EId = c.IdLEFT JOIN e FORCE INDEX (`idx_e`) ON e.CId = a.IdWHERE b.isdeleted = 0

MySQL視圖count速度優化

環境:1).mysql 5.7.10 InnoDB引擎 2核4G2).阿里云RDS 4核8G (貌似效果更差<分片性能會衰減>)問題:1.外層增加排序order by條件后,速度變慢,查看執行計劃為將試圖內數據轉化為temp_table后再進行sort;2.直接count視圖的話更加緩慢,已達不能接受地步,列表分頁肯定需展示總條數,拋除視圖,直接使用sql也是很緩慢。大神們指點指點怎樣優化mysql多表關聯的count

問題解答

回答1:

根據你寫的sql語句,有幾點建議:1、b表使用了force index以強制使用索引,在表條目數較多的情況下,索引查詢未必是最優的方式,一般情況下讓數據庫自己選擇就可以了?;蛘咦约候炞C下,用isdeleted = 0的條件查b單表,確認加上force index性能更好,否則就去掉force index。2、統計數量的sql語句,僅保留a,b,c張表就可以了,其他的幾張表是left join,不影響統計結果3、根據上一步取出的b表字段的主鍵字段,在php中循環取詳情信息。因分頁的數量一般較少,多次通過主鍵取數據的方式速度可能會更快。

另外,如果想讓大家分析,最好把sql的執行計劃貼出來。

回答2:

把你的sql語句貼出來,讓大伙看看。

回答3:

多次查詢,然后合計,得出記錄總數。怎么樣??(沒測試過....)

例如,每次查詢的數據量為: 8000條記錄

PHP 代碼:

// 單位查詢數據量 $unit_num = 8000; // 查詢批次 $count = 1; // 總數據量 $total_record = 0;while (true) { $sql = ’select count(*) from tb_name limit ’ . ($count - 1) * $unit_num . ’ , ’ . $unit_num; $part_num = $db->getOne($sql); # 部分數量// 如果數量 和 查詢的單位量相等,這說明,總數據可能更多..,繼續查詢 if ($part_num === $unit_num) {$total_record += $part_num; }// 如果數量 比 查詢的單位量更少,說明,已經是最后一批數據了 // 跳出循環 if ($part_num < $unit_num) {$total_record += $part_num;break; }# 更新查詢的批次 $count++;} echo ’總數據量:’ . $total_record;回答4:

你最終查詢的是b表的數據,如果count b表為啥還要join其他表呢,count本來就是全表掃描,不加where基本上沒有優化辦法。

回答5:

最開始是研發將總條數做成異步加載,數據和頁碼先出來,這樣只要不是刻意查數量沒什么太大影響;后來看樓上建議改了下視圖,加載總數也會更快些;還有那幾個強制索引也是為使用視圖時外面加條件能夠走索引才加的;這樣優化下來暫時還能接受。

相關文章:
主站蜘蛛池模板: 一区二区三区四区在线 | 欧美 自拍 丝袜 亚洲 | 亚洲欧美日韩精品久久 | 亚洲精品国产一区二区图片欧美 | 波多野结衣视频在线观看地址免费 | 窝窝人体色 | 毛片免费观看的视频 | 一级毛片视频播放 | 日韩亚洲一区中文字幕 | 国产免费久久精品99久久 | 欧美日韩亚洲综合另类ac | 日韩精品一区二区三区免费观看 | 久久国产成人精品国产成人亚洲 | 毛片手机在线观看 | 成人性视频免费网站 | 97se亚洲综合在线 | 亚洲欧美高清在线 | 久久成人亚洲 | 国产亚洲精品自在线观看 | 国产高清精品一级毛片 | 亚洲精品成人a | 日韩不卡在线 | 日韩亚洲欧美一区二区三区 | 欧美激情精品久久久久久久九九九 | 成人毛片全部免费观看 | 久久精视频 | 欧美一级二级三级 | 婷婷的久久五月综合先锋影音 | 国产高清一级视频在线观看 | 成人在线视频免费 | 成年女人免费观看 | 久草观看 | 另类视频在线观看 | 女人张开双腿让男人桶完整 | 欧美成人免费观看的 | 国产99视频在线观看 | 毛色毛片免费看 | 亚洲天堂国产 | 国产精品手机视频一区二区 | 欧美精品18videos性欧美 | 国产精品性视频免费播放 |