最近專案很忙,分給我的功能都比較複雜,還好能應付的下來。在工作的過程中,我發現使用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() 冪運算
mysql的exp平方 Mysql數學函式
所有的數學函式在乙個出錯的情況下返回null。單目減。改變引數的符號。mysql select 2 注意,如果這個操作符與乙個bigint使用,返回值是乙個bigint!這意味著你應該避免在整數上使用 那可能有值 2 63!abs x 返回x的絕對值。mysql select abs 2 2 mys...
mysql備份工具 好用的mysql備份工具 一
下面是它的介紹 mysqlhotcopy是乙個perl指令碼,最初由tim bunce編寫並提供。它使用lock tables flush tables和cp或scp來快速備份資料庫。它是備份資料庫或單個表的最快的途徑,但它只能執行在資料庫目錄所在的機器上。mysqlhotcopy只用於備份myis...
好用的MySQL客戶端HeidiSQL
先前一直使用mysql admin 和 phpmyadmin 來管理mysql資料庫,但是這兩個軟體均有很讓人鬱悶的地方 mysql的操作體驗不好,用了很久都很不習慣 phpmyadmin使用者體驗還行,但是訪問遠端伺服器和多伺服器時體驗和速度欠佳 今天在網上逛了一大圈後發現現在的mysql客戶端已...