java - sql性能和高并發(fā)的取舍問題
問題描述
SELECT
S.carOwnerID ,S.name,S.mobile,S.coopName,S.VIN,s.policyNO,S.effectiveDate,S.expiryDate,s.plateNo,( CASE WHEN s.num > 1 THEN1 WHEN s.num = 1 THEN0 END) AS carState FROM( SELECTc.carOwnerID,c.name,c.mobile,c.coopName,c.VIN,p.policyNO,p.effectiveDate,p.expiryDate,c.plateNo,count(p.PlateNo) AS num FROMcustomer C LEFT JOIN policy P ON C.carOwnerID = P.carOwnerID WHEREdate_add( P.createTime, INTERVAL 11.5 HOUR) > NOW()) s WHEREs.num > 0;
簡單的用多表關(guān)聯(lián)是可以的,如果遇到高并發(fā),性能缺陷立即就出來
問題解答
回答1:多表關(guān)聯(lián)并不意味著sql高性能,太復(fù)雜的SQL效率損耗并不比外部鎖等低,跟高并發(fā)也沒什么沖突。
建議把語句拆成簡單語句,使用鎖和補(bǔ)償機(jī)制來保障事務(wù)性。
相關(guān)文章:
1. mac里的docker如何命令行開啟呢?2. css3 - progress漸變效果css3. docker綁定了nginx端口 外部訪問不到4. 如何解決docker宿主機(jī)無法訪問容器中的服務(wù)?5. css3 隱藏文本6. angular.js - AngularJS如何添加的DOM元素且能綁定事件7. html5 - svg如何做到一組動(dòng)畫循環(huán)8. vue.js - vue+webpack+vue-router 部署到nginx服務(wù)器下,非根目錄,前后端怎樣配置文件?9. 老師可以把數(shù)據(jù)庫也給我們嗎10. node.js - 在vuejs-templates/webpack中dev-server.js里為什么要exports readyPromise?
