zoukankan      html  css  js  c++  java
  • java 最佳实践

    一: 不要直接new一个thread,应当使用线程池。使用线程池的时候应当对线程数量大小合理设置,一般最大不超过50个,当然还需要考虑你的IO和CPU,怎么分析网上搜搜吧。

    二:容器类变量,如果变化比较大且频繁尽量定义的时候设置初始容量大小,减少扩容带来的消耗。

    三:分支判断if…else的时候,最常符合的条件处理放在前面。

    四:对象比较的时候常量放前面,养成好习惯,减少空指针的出现。

    五:减少synchronized中等待处理的代码,能放在外面就尽量放在外面。

    六:两个大表的关联查询,可以使用二次访问数据库替代,先查出A表的数据,利用关联字段再查B表的。不要一味想着一条sql搞定最好。??

    七:坚决避免,查全表数据或者数量大的数据,返回list加载到内存中,一不小心查了100w数据,又查得比较频繁,内存的爆了。有这种风险的改成分页查询。

    八:考虑避免事务里面有长连接或者长事务,如果大量这种情况出现占用数据连接,会影响性能。一些无必要的逻辑可以放到事务外执行。

    九:a 普通索引 

      b 唯一性索引   用UNIQUE参数,主键。

      c 单列索引 

      d 多列索引  只有查询条件中使用了这些字段中第一个字段时,索引才会被使用

      e 全文索引 全文索引只能创建在CHAR、VARCHAR或TEXT类型的字段上。查询数据量较大的字符串类型的字段时,使用全文索引可以提高查询速度。

    十:一般一张表索引不要超过5个,而且避免重复索引,而且也不是建了索引,根据索引字段条件查询,索引就会起作用。

    十一:索引失效的情况:

               使用like关键字匹配字符串第一个为”%”的场景。 

       访问表上的数据行超出表总记录数30%,变成全表扫描

       查询条件使用函数在索引列上,或者对索引列进行运算

               多列索引中,第一个索引列使用范围查询,只能用到部份或无法使用索引

          多列索引中,第一个查询条件不是最左索引列

       

  • 相关阅读:
    c# 创建多线程
    使用opencvsharp通过mvvm在image中显示图片
    c# 创建文件/文件夹对话框
    wpf MVVM框架基础
    wpf DataBinding
    layui自动点击下拉列表的一项并选中
    LayUI默认样式调整
    mysql取某个组的前n条数据
    Kali3.0系统切换中文
    JS触发某元素周围元素的样式改变
  • 原文地址:https://www.cnblogs.com/liufei1983/p/8977959.html
Copyright © 2011-2022 走看看