电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

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

詳解Mysql 函數調用優化

瀏覽:4日期:2023-10-04 09:05:38
函數調用優化

MySQL函數在內部被標記為確定性或不確定性。如果給定參數固定值的函數可以為不同的調用返回不同的結果,則它是不確定的。不確定函數的示例: RAND(), UUID()。

如果某個函數被標記為不確定的,則將WHERE針對每一行(從一個表中選擇時)或行的組合(從多表聯接中選擇時)評估子句中對該函數的引用。

MySQL還根據參數的類型(參數是表列還是常量值)確定何時評估函數。每當表列更改值時,都必須評估將表列作為參數的確定性函數。

非確定性函數可能會影響查詢性能。例如,某些優化可能不可用,或者可能需要更多鎖定。以下討論使用 RAND()但也適用于其他不確定性函數。

假設一個表t具有以下定義:

CREATE TABLE t (id INT NOT NULL PRIMARY KEY, col_a VARCHAR(100));

考慮以下兩個查詢:

SELECT * FROM t WHERE id = POW(1,2);SELECT * FROM t WHERE id = FLOOR(1 + RAND() * 49);

由于與主鍵的相等性比較,兩個查詢似乎都使用了主鍵查找,但這僅適用于第一個查詢:

第一個查詢始終最多產生一行,因為POW()帶有常量參數的常量是一個常量值,并用于索引查找。 第二個查詢包含一個使用非確定性函數的表達式,該表達式 RAND()在查詢中不是常量,但實際上對表的每一行都有一個新值t。因此,查詢讀取表的每一行,評估每一行的謂詞,并輸出主鍵與隨機值匹配的所有行。根據id列值和RAND()序列中的值, 它可以是零行,一行或多行 。

非確定性的影響不僅限于 SELECT陳述。該 UPDATE語句使用非確定性函數來選擇要修改的行:

UPDATE t SET col_a = some_expr WHERE id = FLOOR(1 + RAND() * 49);

大概目的是最多更新主鍵與表達式匹配的一行。但是,它可能會更新零,一或多個行,具體取決于 id列值和RAND()序列中的值 。

剛剛描述的行為對性能和復制有影響:

由于不確定函數不會產生恒定值,因此優化器無法使用其他可能適用的策略,例如索引查找。結果可能是表掃描。 InnoDB 可能升級為范圍鍵鎖,而不是為一個匹配的行獲取單行鎖。 無法確定執行的更新對于復制是不安全的。

困難源于RAND()對表的每一行都對函數進行一次評估的事實 。為了避免進行多功能評估,請使用以下技術之一:

將包含不確定性函數的表達式移到單獨的語句,將值保存在變量中。在原始語句中,將表達式替換為對變量的引用,優化器可以將該變量視為常量值:

SET @keyval = FLOOR(1 + RAND() * 49);UPDATE t SET col_a = some_expr WHERE id = @keyval; 將隨機值分配給派生表中的變量。此技術使變量在WHERE子句中的比較中使用之前被分配一個值 :

SET optimizer_switch = ’derived_merge=off’;UPDATE t, (SELECT @keyval := FLOOR(1 + RAND() * 49)) AS dtSET col_a = some_expr WHERE id = @keyval;

如前所述,該WHERE子句中的不確定性表達式 可能會阻止優化并導致表掃描。但是,WHERE如果其他表達式是確定性的,則可以部分優化該子句。例如:

SELECT * FROM t WHERE partial_key=5 AND some_column=RAND();

如果優化器可以partial_key用來減少所選行的集合, RAND()則執行的次數更少,這可以減少不確定性對優化的影響。

以上就是詳解Mysql 函數調用優化的詳細內容,更多關于Mysql 函數調用優化的資料請關注好吧啦網其它相關文章!

標簽: MySQL 數據庫
相關文章:
主站蜘蛛池模板: 工业PH计|工业ph酸度计|在线PH计价格-合肥卓尔仪器仪表有限公司 济南画室培训-美术高考培训-山东艺霖艺术培训画室 | 高防护蠕动泵-多通道灌装系统-高防护蠕动泵-www.bjhuiyufluid.com慧宇伟业(北京)流体设备有限公司 | 【德信自动化】点胶机_全自动点胶机_自动点胶机厂家_塑料热压机_自动螺丝机-深圳市德信自动化设备有限公司 | 3D全息投影_地面互动投影_360度立体投影_水幕灯光秀 | 广东银虎 蜂窝块状沸石分子筛-吸附脱硫分子筛-萍乡市捷龙环保科技有限公司 | 实体店商新零售|微赢|波后|波后合作|微赢集团 | 自清洗过滤器-全自动自清洗过反冲洗过滤器 - 中乂(北京)科技有限公司 | 齿式联轴器-弹性联轴器-联轴器厂家-江苏诺兴传动联轴器制造有限公司 | 贵州自考_贵州自学考试网| 电镀电源整流器_高频电解电源_单脉双脉冲电源 - 东阳市旭东电子科技 | 广东燎了网络科技有限公司官网-网站建设-珠海网络推广-高端营销型外贸网站建设-珠海专业h5建站公司「了了网」 | 液氮罐(生物液氮罐)百科-无锡爱思科 | 撕碎机_轮胎破碎机_粉碎机_回收生产线厂家_东莞华达机械有限公司 | 企业VI设计_LOGO设计公司_品牌商标设计_【北京美研】 | 高光谱相机-近红外高光谱相机厂家-高光谱成像仪-SINESPEC 赛斯拜克 | 欧美日韩国产一区二区三区不_久久久久国产精品无码不卡_亚洲欧洲美洲无码精品AV_精品一区美女视频_日韩黄色性爱一级视频_日本五十路人妻斩_国产99视频免费精品是看4_亚洲中文字幕无码一二三四区_国产小萍萍挤奶喷奶水_亚洲另类精品无码在线一区 | 华禹护栏|锌钢护栏_阳台护栏_护栏厂家-华禹专注阳台护栏、楼梯栏杆、百叶窗、空调架、基坑护栏、道路护栏等锌钢护栏产品的生产销售。 | 标准光源箱|对色灯箱|色差仪|光泽度仪|涂层测厚仪_HRC大品牌生产厂家 | 乐之康护 - 专业护工服务平台,提供医院陪护-居家照护-居家康复 | 防水套管|柔性防水套管|伸缩器|伸缩接头|传力接头-河南伟创管道 防水套管_柔性防水套管_刚性防水套管-巩义市润达管道设备制造有限公司 | 蜂窝块状沸石分子筛-吸附脱硫分子筛-萍乡市捷龙环保科技有限公司 | 国标白水泥,高标号白水泥,白水泥厂家-淄博华雪建材有限公司 | 二手电脑回收_二手打印机回收_二手复印机回_硒鼓墨盒回收-广州益美二手电脑回收公司 | 压缩空气冷冻式干燥机_吸附式干燥机_吸干机_沪盛冷干机 | 数字展示在线_数字展示行业门户网站 | PSI渗透压仪,TPS酸度计,美国CHAI PCR仪,渗透压仪厂家_价格,微生物快速检测仪-华泰和合(北京)商贸有限公司 | 宁夏活性炭_防护活性炭_催化剂载体炭-宁夏恒辉活性炭有限公司 | IWIS链条代理-ALPS耦合透镜-硅烷预处理剂-上海顶楚电子有限公司 lcd条形屏-液晶长条屏-户外广告屏-条形智能显示屏-深圳市条形智能电子有限公司 | 心肺复苏模拟人|医学模型|急救护理模型|医学教学模型上海康人医学仪器设备有限公司 | 磁棒电感生产厂家-电感器厂家-电感定制-贴片功率电感供应商-棒形电感生产厂家-苏州谷景电子有限公司 | 防火板_饰面耐火板价格、厂家_品牌认准格林雅 | led全彩屏-室内|学校|展厅|p3|户外|会议室|圆柱|p2.5LED显示屏-LED显示屏价格-LED互动地砖屏_蕙宇屏科技 | 仿真茅草_人造茅草瓦价格_仿真茅草厂家_仿真茅草供应-深圳市科佰工贸有限公司 | 艾默生变频器,艾默生ct,变频器,ct驱动器,广州艾默生变频器,供水专用变频器,风机变频器,电梯变频器,艾默生变频器代理-广州市盟雄贸易有限公司官方网站-艾默生变频器应用解决方案服务商 | 苏州西朗门业-欧盟CE|莱茵UL双认证的快速卷帘门品牌厂家 | 荣事达手推洗地机_洗地机厂家_驾驶式扫地机_工业清洁设备 | 合金耐磨锤头_破碎机锤头_郑州市德勤建材有限公司 | 锂电混合机-新能源混合机-正极材料混料机-高镍,三元材料混料机-负极,包覆混合机-贝尔专业混合混料搅拌机械系统设备厂家 | 板式换热器_板式换热器价格_管式换热器厂家-青岛康景辉 | 镀锌方管,无缝方管,伸缩套管,方矩管_山东重鑫致胜金属制品有限公司 | 成都热收缩包装机_袖口式膜包机_高速塑封机价格_全自动封切机器_大型套膜机厂家 | 拖鞋定制厂家-品牌拖鞋代加工厂-振扬实业中国高端拖鞋大型制造商 |