mysql位運(yùn)算查詢優(yōu)化 mysql位運(yùn)算會(huì)影響效率嗎?
mysql位運(yùn)算會(huì)影響效率嗎?很明顯,雖然varchar的長(zhǎng)度是可變的,但仍然建議給定一個(gè)長(zhǎng)度數(shù)據(jù)庫優(yōu)化的一個(gè)有效方法是為給定的屬性給定一個(gè)合適的長(zhǎng)度位運(yùn)算還是四位算術(shù)運(yùn)算取決于兩點(diǎn):1。是否需要位運(yùn)
mysql位運(yùn)算會(huì)影響效率嗎?
很明顯,雖然varchar的長(zhǎng)度是可變的,但仍然建議給定一個(gè)長(zhǎng)度
數(shù)據(jù)庫優(yōu)化的一個(gè)有效方法是為給定的屬性給定一個(gè)合適的長(zhǎng)度
位運(yùn)算還是四位算術(shù)運(yùn)算取決于兩點(diǎn):1。是否需要位運(yùn)算函數(shù)
2。它是否真的關(guān)心效率;
首先,這沒有錯(cuò)。畢竟,有一個(gè)函數(shù)需要,它比效率更好例如,如果我有一組需要以位的形式分配和檢測(cè)的標(biāo)志,或者特別是在寫入硬件驅(qū)動(dòng)程序時(shí),輸入值的位可以控制開關(guān)或函數(shù)是否啟動(dòng)。
A*=2和A<<=1
具有相同的效果。
事實(shí)上,這里的主要權(quán)衡是代碼可讀性(或可維護(hù)性)和代碼執(zhí)行效率。
首先,考慮可讀性。很明顯,在邏輯復(fù)雜的代碼中,置換不如乘法那么明顯。
第二是實(shí)施效率。現(xiàn)在,許多腳本語言都支持位操作,但是腳本語言本身也同時(shí)解釋和執(zhí)行,并且腳本語言中的元素(如變量、函數(shù)等)被封裝在許多層中。因此,位運(yùn)算指令執(zhí)行效率的提高對(duì)于腳本語言的執(zhí)行成本來說是杯水車薪,而且?guī)缀鯖]有提高性能的效果,所以不會(huì)選擇使用腳本語言。
對(duì)于編譯語言,我特別提到C/C,如果軟件不太關(guān)心性能,建議使用四個(gè)算術(shù)運(yùn)算,方便開發(fā)人員以后維護(hù)代碼。
希望對(duì)您有所幫助