MySQL好用的數學函數


最近項目很忙,分給我的功能都比較復雜,還好能應付的下來。在工作的過程中,我發現使用mysql的自帶函數能夠極大的減少程序的復雜度。這是必然的,使用mysql的函數,能夠在程序里面省卻很多的循環遍歷。但是網上有的專家說,在mysql里面使用數學以及字符串函數,會使得mysql的效率變慢,我想這是必然的。把本來是程序應該干的事情交給了mysql去干,mysql干的越多,那么效率就越低。

那么有沒有可能找到一個平衡呢?不建議,因為有大神說mysql的函數效率低,就不使用。如果這樣子的話,那么干脆連mysql數據庫也不要使用了吧,比mysql成熟的數據庫一抓一大把。但是為什么還要使用mysql呢?免費呀(現在不免費了),既要使用mysql的優點,也要盡量避免mysql效率低的坑。也就是在做系統的使用,要問清楚這個軟件的運用范圍。

如果是內部系統,都知道內部系統通常業務邏輯非常復雜,功能非常細致,但是訪問量比較小,也就是並發量比較小。外部系統可能也許邏輯上沒有內部系統這么復雜,但是訪問量比較多,並發比較大。如果是訪問量比較小的軟件,就可以在系統里盡可能的使用mysql的自帶函數,充分降低的程序的復雜度,也利於維護。如果是訪問量大的程序就要盡可能的將計算好資源的邏輯放在程序里面跑,盡可能將服務端非機密的計算放在用戶端去跑。讓客戶端負責計算,讓程序段負責邏輯,讓DB端只負責數據的存儲。各司其職,各用所長。

總之不能因噎廢食,不能因為別人的一句話,正好順應了自己不想學習的懶惰之心。

mysql數學函數走起,先寫一部分,以后慢慢補充。


 1、format(x,y)  函數,功能是將一個數字x,保留y位小數,並且整數部分用逗號分隔千分位,小數部分進行四舍五入。

需要注意的是,一旦你的數據經過千分位分隔后,就會變成字符串。能夠給閱讀上提供比較好的體驗,但是在計算上卻造成很大的困擾,所以如果只是保留小數,不建議使用這個函數。

2、abs();  求一個數的絕對值;absolute

3、sqrt();求一個數的平方根。sqrt是sqruar(平方,矩形) ,root(根)的縮寫。

4、mod(x,y)  x除數,y被除數。結束是余數。

  

5、ceil()  進一取整。

     floor()舍一取整

這兩個函數是鏡子函數,比較有點意思。這兩個函數並不進行四舍五入,比較強硬。

6、rand()  顧名思義,是用來生成隨機數用的。

7、format 會自動進行千分位,下面我們來看看round函數,進行四舍五入。

8、truncate(x,y)  比較霸道,不管四舍五入,直接把x,的y位小數直接干掉。

9、sign() 返回當前結果得符號,如果是負數返回-1,如果是0 返回0 如果是正數,返回1.

10、power()  冪運算


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM