资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

java基础问题

来源:公司资讯 | 2021.08.20

1.数字 A,数字 B,数字 c,第一次 ABC一次存入,记录存入次数;第二次,其后记录使用次数,要求最长的,使用次数最少的,达到1000次后,将被删除。(只能使用本地缓存,中间件和数据库没有)

1>(无需大脑解)创建一个全局性的 map集合,把数字和时间,随时间存入,到1000后进行,时间戳对比,以及相同的次数对比。

2>使用三个全局列表,统计次数各使用次数,最近使用时间,每次使用更新时间,当总和达到1000次后做时间对比和使用次数对比并删除。

(期待后续补充,提供几个最佳方案)

2. SQL优化

1>查询优化:建立索引时,应尽量避免全表扫描,首先考虑对 where和 orderby所涉及的列建立索引

2>很多时候用 exists替代 in是个不错的选择

3>适当地使用索引,索引可以提高相应 select的效率,同时降低插入和更新的效率,

由于 insert或 update时有可能重新生成索引,因此需要仔细考虑如何建立索引,这取决于具体情况。

4>一张表的索引数目最好不超过6个,如果索引过多,则需要考虑对某些不常用的列建立索引的必要性。

5>尽可能使用 varchar替代 char,因为首先变长的字段存储空间较小,从而节省存储空间,

第二种情况是查询,很明显,在相对较小的字段中搜索效率要高一些。

6>任何地方都不要使用 select* from t,

将"*"替换为特定字段列表,而不返回任何不能使用的域

7>合理使用临时表

8>避免使用游标,因为游标的效率很低,如果游标操作的数据超过10,000行,那么应该考虑重新编写

9>尽量避免大事务操作,提高系统的并发能力

10>尽量避免返回大容量的客户端,如果数据量太大,要考虑相应的需求是否合理。

3.在添加索引之后,如何使索引失效

最左匹配原则,后模糊不会使索引失效。

在 where子句中尽量避免

用!=或<>操作员,

判断该字段的值为空,

用 or连接条件、

还应谨慎使用 in和 not in

使用表达式操作字段、

用功能运算字段、

不对"="左侧执行函数、算术运算或其他表达式操作,否则引擎将放弃全表扫描以使用索引

结论:

有的是必须踏上的坑,有些是必须去做的,希望通过分享彼此进步,走过这条平凡的路。

————————————————

版权声明:本文为CSDN博主「锐rui3g」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/d960704119/article/details/119762282

—— 灵通云微信公众号 ——

热门标签

上一条———————

下一条———————

十七年 建站经验

多一份参考,总有益处

联系灵通云,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

业务热线:400-688-6062 / 大客户专线   南通:15818561755