亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

Mysql中排序在SQL優化中的部分解析

系統 1836 0

? ? ? ? 在mysql中,相關的復制的sql語句,會對所要搜取得結果進行規整,這里就有排序,分組,統計等相關整理過程,其中排序的算法的意義最為重要,在mysql不同的版本中,特別是在5.1系列以后對排序算法的定義不斷加強改善;

? ? ? ? 在排序算法中對新舊算法當中提到的陣列的寬度,以及函數搜取的范圍,大小,影響的高度等都進行了修改,并設置相關的閥值,以指導相關的參數自動閉合;以下是在5.5系列中相關的sort文件截取;

?

    #define UT_SORT_FUNCTION_BODY(SORT_FUN, ARR, AUX_ARR, LOW, HIGH, CMP_FUN)\

{\

	ulint		ut_sort_mid77;\

	ulint		ut_sort_i77;\

	ulint		ut_sort_low77;\

	ulint		ut_sort_high77;\

\

	ut_ad((LOW) < (HIGH));\

	ut_ad(ARR);\

	ut_ad(AUX_ARR);\

\

	if ((LOW) == (HIGH) - 1) {\

		return;\

	} else if ((LOW) == (HIGH) - 2) {\

		if (CMP_FUN((ARR)[LOW], (ARR)[(HIGH) - 1]) > 0) {\

			(AUX_ARR)[LOW] = (ARR)[LOW];\

			(ARR)[LOW] = (ARR)[(HIGH) - 1];\

			(ARR)[(HIGH) - 1] = (AUX_ARR)[LOW];\

		}\

		return;\

	}\

\

	ut_sort_mid77 = ((LOW) + (HIGH)) / 2;\

\

	SORT_FUN((ARR), (AUX_ARR), (LOW), ut_sort_mid77);\

	SORT_FUN((ARR), (AUX_ARR), ut_sort_mid77, (HIGH));\

\

	ut_sort_low77 = (LOW);\

	ut_sort_high77 = ut_sort_mid77;\

\

	for (ut_sort_i77 = (LOW); ut_sort_i77 < (HIGH); ut_sort_i77++) {\

\

		if (ut_sort_low77 >= ut_sort_mid77) {\

			(AUX_ARR)[ut_sort_i77] = (ARR)[ut_sort_high77];\

			ut_sort_high77++;\

		} else if (ut_sort_high77 >= (HIGH)) {\

			(AUX_ARR)[ut_sort_i77] = (ARR)[ut_sort_low77];\

			ut_sort_low77++;\

		} else if (CMP_FUN((ARR)[ut_sort_low77],\

				   (ARR)[ut_sort_high77]) > 0) {\

			(AUX_ARR)[ut_sort_i77] = (ARR)[ut_sort_high77];\

			ut_sort_high77++;\

		} else {\

			(AUX_ARR)[ut_sort_i77] = (ARR)[ut_sort_low77];\

			ut_sort_low77++;\

		}\

	}\

\

	memcpy((void*) ((ARR) + (LOW)), (AUX_ARR) + (LOW),\

	       ((HIGH) - (LOW)) * sizeof *(ARR));\

}\


  

參數max_length_for_sort_data;

?

在MySQL中,決定使用第一種老式的排序算法還是新的改進算法的依據是通過參數max_length_for_sort_data來決定的。當我們所有返回字段的最大長度小于這個參數值的時候,MySQL就會選擇改進后的排序算法,反之,則選擇老式的算法。所以,如果我們有充足的內存讓MySQL存放需要返回的非排序字段的時候,可以加大這個參數的值來讓MySQL選擇使用改進版的排序算法。

參數sort_buffer_size;

增大sort_buffer_size并不是為了讓MySQL可以選擇改進版的排序算法,而是為了讓MySQL可以盡量減少在排序過程中對需要排序的數據進行分段,因為這樣會造成MySQL不得不使用臨時表來進行交換排序。

還有就是對相關的字段進行規避;選擇返回需要的即可;


?

Mysql中排序在SQL優化中的部分解析


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 久久天天躁夜夜躁2019 | 97五月| 久久一| 亚洲成在人线久久综合 | 天天射夜夜骑 | 久久成人激情视频 | chinese456老人gay chinese国产xxxx中国 | 欧美成人午夜免费完成 | 一本大道久久a久久综合 | 欧做爰xxxⅹ性欧美图片 | 一区二区三区欧美在线 | 成人爽a毛片在线视频 | 日韩第三页 | 精品中文字幕一区二区三区四区 | 亚洲 欧美 成人日韩 | 波多野结衣乳巨码无在线观看 | 国产成人精品午夜在线播放 | 久青草影院在线观看国产 | 免费日本黄色网址 | 国产成人精品亚洲77美色 | 欧美日韩你懂的 | 亚洲色五月 | 精品中文字幕一区二区三区四区 | 欧美性猛交xxxxxxxx软件 | 国产精品全国探花泡良大师 | 久久婷婷婷 | 性做久久久久久网站 | 操操操干干 | 精品久久国产视频 | 手机看片福利盒子久久青 | 狠狠噜噜| 日韩经典欧美一区二区三区 | 狠狠色综合久久婷婷色天使 | 一级二级毛片 | 99网站| 久久精品国产曰本波多野结衣 | 国产成 人 综合 亚洲网 | 久久精品中文字幕 | 国产成人看片免费视频观看 | 日韩精品在线视频观看 | 色婷婷久久合月综 |