從品牌網(wǎng)站建設到網(wǎng)絡營銷策劃,從策略到執(zhí)行的一站式服務
來源:公司資訊 | 2021.08.20
1.數(shù)字 A,數(shù)字 B,數(shù)字 c,第一次 ABC一次存入,記錄存入次數(shù);第二次,其后記錄使用次數(shù),要求最長的,使用次數(shù)最少的,達到1000次后,將被刪除。(只能使用本地緩存,中間件和數(shù)據(jù)庫沒有)
1>(無需大腦解)創(chuàng)建一個全局性的 map集合,把數(shù)字和時間,隨時間存入,到1000后進行,時間戳對比,以及相同的次數(shù)對比。
2>使用三個全局列表,統(tǒng)計次數(shù)各使用次數(shù),最近使用時間,每次使用更新時間,當總和達到1000次后做時間對比和使用次數(shù)對比并刪除。
(期待后續(xù)補充,提供幾個最佳方案)
2. SQL優(yōu)化
1>查詢優(yōu)化:建立索引時,應盡量避免全表掃描,首先考慮對 where和 orderby所涉及的列建立索引
2>很多時候用 exists替代 in是個不錯的選擇
3>適當?shù)厥褂盟饕饕梢蕴岣呦鄳?select的效率,同時降低插入和更新的效率,
由于 insert或 update時有可能重新生成索引,因此需要仔細考慮如何建立索引,這取決于具體情況。
4>一張表的索引數(shù)目最好不超過6個,如果索引過多,則需要考慮對某些不常用的列建立索引的必要性。
5>盡可能使用 varchar替代 char,因為首先變長的字段存儲空間較小,從而節(jié)省存儲空間,
第二種情況是查詢,很明顯,在相對較小的字段中搜索效率要高一些。
6>任何地方都不要使用 select* from t,
將"*"替換為特定字段列表,而不返回任何不能使用的域
7>合理使用臨時表
8>避免使用游標,因為游標的效率很低,如果游標操作的數(shù)據(jù)超過10,000行,那么應該考慮重新編寫
9>盡量避免大事務操作,提高系統(tǒng)的并發(fā)能力
10>盡量避免返回大容量的客戶端,如果數(shù)據(jù)量太大,要考慮相應的需求是否合理。
3.在添加索引之后,如何使索引失效
最左匹配原則,后模糊不會使索引失效。
在 where子句中盡量避免
用!=或<>操作員,
判斷該字段的值為空,
用 or連接條件、
還應謹慎使用 in和 not in
使用表達式操作字段、
用功能運算字段、
不對"="左側(cè)執(zhí)行函數(shù)、算術(shù)運算或其他表達式操作,否則引擎將放棄全表掃描以使用索引
結(jié)論:
有的是必須踏上的坑,有些是必須去做的,希望通過分享彼此進步,走過這條平凡的路。
————————————————
版權(quán)聲明:本文為CSDN博主「銳rui3g」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/d960704119/article/details/119762282