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