- 1、數字技術是用mysql sum還是java計算哪個快
- 2、mysql數據庫可以進行怎樣的數學運算
- 3、mysql不能分析數據嗎
- 4、做邏輯運算時,寫程序里好還是sql數據庫里好
- 5、MySQL高性能SQL注意事項簡述
- 6、數據庫中的數據運算,有的SQL能實現,程序語言同樣能實現,是用SQL運算?還是用程序語言?
sum函數在數據庫是number類型的,你的代碼中可以使用任何裝的下數字型都可以接收。如:sum的值小於java中int的最大值,你就可以用int接收;如果大於Int的最大值而小於double的最大值,你就可以用double。一般在程序設計時,如果不確定它的值範圍,可以用long型接收。
$sql=”SELECT COUNT(*) AS count FROM mark WHERE hID = ‘$hid'”;$result = mysql_fetch_array(mysql_query($sql));$count = $result[‘count’];$count++;$numOfScore = $count;
12 $count = mysql_result(mysql_query(“SELECT COUNT(*) AS count FROM mark WHERE hID = $hid”),0);$numOfScore = $count + 1;
可以分析數據 ,像一些運算可以直接在Mysql裡面操作,比如:底薪+獎金+績效 等等分析 ,業務邏輯複雜的話,Mysql是不能做的,只能靠一些服務器端程序去操作
做
邏輯運算
時,寫程序里好還是
sql數據庫
里好
如果你的數據庫服務比較繁忙,還是放到CS中處理較好。
數據庫的任務主要是保存數據/查詢數據
計算的事,能放在CS中盡量放到CS中。
數據庫作為應用開發中必不缺少的基礎設施,其性能直接影響應用的整體運行速度。MySQL是目前最廣泛使用的關係型數據庫之一,對於開發人員寫出性能良好的SQL是必備的基本技能之一。下面簡單描述下編寫SQL的注意事項。
編寫高質量的SQL需要從以下幾個方面注意,基本原則、表字段注意事項、索引使用注意事項、SQL注意事項。
基本原則
一、盡量不要在數據庫里做運算。如果遇到運算儘可能在應用程序層進行計算。
二、控制數據庫表數量、控制單表數據量、控制表的字段數。建議單庫不要超過四百張表,建議單表字段不要超過五十個,建議單表的數據量不要超過一千萬。
三、不要編寫大SQL、不要使用大事務。SQL盡量寫的簡單點拒絕編寫大SQL,可以將大SQL拆分成多個小SQL,在應用層聚合。大事務拆分成多個小事務,快速提交。
表字段注意事項
一、選擇合適數值字段類型。能用小字段類型的就用小字段類型,如tinyint就比int(1)在表示小數據時合適。
二、能用數字表示就不要用字符。如可以用無符號INT存儲IP而不是字符串表示。
三、避免使用NULL字段。原因NULL字段查詢優化難,含NULL複合索引失效。
四、少用或拆分TEXT/BLOB字段。字段太大需要更多的空間,性能低下,如需使用拆分到單獨表。
五、不要在表字段中存儲圖片。
索引使用注意事項
一、合理添加索引。索引添加太多會影響更新速度。能夠使用複合索引的避免加多個單獨索引。
二、字符字段建立前綴索引。
三、不在索引列做運算。索引列做運算會導致索引失效。
四、盡量不使用外建。
SQL類注意事項
一、 SQL語句儘可能簡單。大SQL拆分成多個小SQL。
二、事務編寫盡量短小。事務即開即用用完立即關閉。
三、盡量不要使用select *。只取需要的列。
四、改寫OR為IN或者改寫為UNION操作。OR在數據量大的時候性能低於IN。
五、避免NOT、!=、、NOT IN、NOT EXISTS、NOT LIKE等查詢。
六、避免%前綴模糊查詢。
七、能用UNION ALL不要用UNION。
八、GROUP BY中去除排序。自帶排序。
九、同類型的字段做比較。字符類和字符類比較,數值類和數值類比較,不要混在一起比較。
十、盡量單表查詢,盡量不要多表關聯查詢。多表關聯查詢可以拆分成單表查詢在應用程序中聚合數據。
十一、複合索引的多列注意最左原則。
上述注意事項能避免很多性能低下的SQL,希望在開發過程中能引起注意。
一般來說,在sql端運算效率肯定是比程序運算要高的。
至於怎麼選擇是根據系統的特性而言的,假如應用程序非常龐大,或者業務邏輯相對複雜,又或者訪問壓力大,這時候,你如果將計算的工作放在服務端程序中,這會加大服務端的處理壓力,從而影響到應用程序的性能。
這時候,你可以讓數據庫來分擔運算壓力,是個不錯的選擇。
同樣的道理,如果你的應用程序的服務端壓力不大,而數據庫方面每時每刻都要處理和統計許多報表數據,那麼用程序來完成某部分的運算也不錯。
撇開性能問題,還有一點也要考慮到,數據運算肯定會跟業務邏輯耦合在一起的,如果處理數據不用擔心性能問題,那麼不妨在架構上做出一些考慮:盡量讓業務邏輯集中在兩端,要不在SQL的存儲過程中,要不在程序的業務類中,這樣顯得各層之間耦合度更松,架構更為清晰、合理,便於維護和擴展。
原創文章,作者:簡單一點,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/127290.html