精华内容
下载资源
问答
  • (a).BN作用非线性映射前,当神经网络收敛速度缓慢时候,或者梯度爆炸无法训练时候可以考虑BN, (b).一般情况也可以BN来尝试加快训练速度,提高模型的精度。 2.不适用于动态的网络结构和RNN网络 BN比较...

    1.在CNN中,

    (a).BN作用在非线性映射前,当神经网络收敛速度缓慢时候,或者梯度爆炸无法训练时候可以考虑用BN,

    (b).一般情况也可以用BN来尝试加快训练速度,提高模型的精度。


    2.不适用于动态的网络结构和RNN网络

     

    1. BN比较适用的场景是:每个mini-batch比较大,数据分布比较接近.  在进行训练之前,要做好充分的shuffle,否则效果会差很多
    2. 由于BN需要在运行过程中统计每个mini-batch的一阶统计量和二阶统计量,因此不适用于动态的网络结构和RNN网络。
    展开全文
  • 数据库设计过程中我们要本着够用的原则,如果一味的把数据字段范围设为最大或者默认值的话,会导致存储空间大量的浪费。数据量特别大的情况下,这样的设计原理将会使数据库空间造成严重的浪费,也会对数据库的...

     

    这里给大家介绍的就一些常用的字段,例如:int、float、double、 decimal、varchar、char、 date、datetime等八种常用的类型。

    在数据库设计过程中我们要本着够用的原则,如果一味的把数据字段范围设为最大或者默认值的话,会导致存储空间大量的浪费。在数据量特别大的情况下,这样的设计原理将会使数据库空间造成严重的浪费,也会对数据库的执行效率造成很大的影响。所以我们在做数据库设计的时候要谨慎再谨慎、小心再小心。

    下面说一下字段各自的使用原则:

    1.当数据存储的是字符,且长度是一个固定区间定值的话就可以考虑使用char来进行存储,如果字符长度是未知的且长度变化特别明显的话,这个时候最好使用varchar来存储。但是不管使用的是哪种字段来进行存储,都不要把字段的初始长度设置为最大化,应该是根据业务需求来存储最合适的长度字段。

    2.数据库设计过程中尽量使用int来作为字段类型,因为在所有的数据类型中int不管是存储空间还是执行速度方面都是最好的。例如:如果业务中存储的都是数据的话而且长度不是特别长的话,就可以考虑使用int来进行存储,或者业务中要对数据进行排序的时候需要使用某一标识权重之类的,也可以使用int来进行存储。但是不要因为int高效,而有意识的把所有字段都设计成int来处理,最终还是要根据业务的具体需求来设计相应的字段。

    3.在涉及到金额的时候如果对精度要求不高的情况下可以优先使用float,其次是使用double来进存储。如果对精度要求比较高的情况下最好使用decimal来存储,但是相应的它 的效率没有float和double那么高效。具体使用哪种还是要根据业务的具体需求来选择。

    4.关于date和datetime的用法,就要看你想要存储时间的精确值了,如果仅仅是想要精确到天的话使用date就可以了,如要要精确到秒一级别的就要使用datetime了。有时候大家使用datetime的使用却只是存储到天的日期单位时,这个时候就会自动添加00:00:00在数据的后面,作为秒一级别的数据。

    5.int(5)和int(10)的区别是什么?想必大家也很好奇吧,其实5和10其实只是显示长度的却别而已,也就是不管int(x)x的值是什么值,存储数字的取值范围还是int本身数据类型的取值范围,x只是数据显示的长度而已。

    6.varchar(10)和char(10)的差别是什么?存储超过时候会发生什么问题呢?这个问题其实也相对经典,我也是整了很久才搞清楚的。在MYSQL5,5以后,varchar(x)x中范其实是存储字段的长度范围,就是一个字符代表一个长度,不管这个字符是汉子还是字符都算是一个长度单位。varchar虽然设置长度值,可是因为varchar是可变的长度类型,也就是当存储的长度小于x时候,其实实际的存储空间不是x而是实际存储的字符长度+一些标示空间。当然如果超过x的长度的话还是会报错的。而char(y)中y的值就是存储空间实际的存储长度,超过这个长度的话就会报错。
    --------------------- 

    本文转载
    作者:心静自然凉zc 
    原文:https://blog.csdn.net/qq_39740187/article/details/79973773 

    展开全文
  • 到底什么时候用FOR UPDATE合适

    万次阅读 多人点赞 2018-07-27 16:39:30
    1.forupdate的使用场景 ...如果库存刚开始读的时候是1,而立马另一个进程进行了update将库存更新为0了,而事务还没有结束,会将错的数据一直执行下去,就会有问题。所以需要forupate进行数据加锁防止高并发时...

    1. for update的使用场景

    `如果遇到存在高并发并且对于数据的准确性很有要求的场景,是需要了解和使用for update的。
        比如涉及到金钱、库存等。一般这些操作都是很长一串并且是开启事务的。如果库存刚开始读的时候是1,而立马另一个进程进行了update将库存更新为0了,而事务还没有结束,会将错的数据一直执行下去,就会有问题。所以需要for upate 进行数据加锁防止高并发时候数据出错。
        记住一个原则:一锁二判三更新
    2. for update如何使用
        使用姿势:
        select * from table where xxx for update
    3. for update的锁表
        InnoDB默认是行级别的锁,当有明确指定的主键时候,是行级锁。否则是表级别。
        例子: 假设表foods ,存在有id跟name、status三个字段,id是主键,status有索引。
        例1: (明确指定主键,并且有此记录,行级锁) 
        SELECT * FROM foods WHERE id=1 FOR UPDATE; 
        SELECT * FROM foods WHERE id=1 and name=’咖啡色的羊驼’ FOR UPDATE;
        例2: (明确指定主键/索引,若查无此记录,有锁
        SELECT * FROM foods WHERE id=-1 FOR UPDATE;
        例3: (无主键/索引,表级锁) 
        SELECT * FROM foods WHERE name=’咖啡色的羊驼’ FOR UPDATE;
        例4: (主键/索引不明确,表级锁) 
        SELECT * FROM foods WHERE id<>’3’ FOR UPDATE; 
        SELECT * FROM foods WHERE id LIKE ‘3’ FOR UPDATE;
    4. for update的注意点
        1.for update 仅适用于InnoDB,并且必须开启事务,在begin与commit之间才生效。
        2.要测试for update的锁表情况,可以利用MySQL的Command Mode,开启二个视窗来做测试。
    5. for update的疑问点
        当开启一个事务进行for update的时候,另一个事务也有for update的时候会一直等着,直到第一个事务结束吗?
        答:会的。除非第一个事务commit或者rollback或者断开连接,第二个事务会立马拿到锁进行后面操作。
        如果没查到记录会锁表吗?
        答:会的。表级锁时,不管是否查询到记录,都会锁定表。

    展开全文
  • Integer和int的区别?在什么时候用Integer和什么时候用int

    转自:http://blog.csdn.net/u012110719/article/details/46367365

    PO持久化对象中用integer而不要使用int

    /*
     * int是java提供的8种原始数据类型之一。Java为每个原始类型提供了封装类,Integer是java为int提供的封装类。int的默认值为0,
     * 而Integer的默认值为null
     * ,即Integer可以区分出未赋值和值为0的区别,int则无法表达出未赋值的情况,例如,要想表达出没有参加考试和考试成绩为0的区别
     * ,则只能使用Integer
     * 。在JSP开发中,Integer的默认为null,所以用el表达式在文本框中显示时,值为空白字符串,而int默认的默认值为0,所以用el表达式在文本框中显示时
     * ,结果为0,所以,int不适合作为web层的表单数据的类型。
     * 在Hibernate中,如果将OID定义为Integer类型,那么Hibernate就可以根据其值是否为null而判断一个对象是否是临时的
     * ,如果将OID定义为了int类型,还需要在hbm映射文件中设置其unsaved-value属性为0。
     * 另外,Integer提供了多个与整数相关的操作方法,例如,将一个字符串转换成整数,Integer中还定义了表示整数的最大值和最小值的常量。

     */

    1. package java基础题目;  
    2.   
    3. /** 
    4.  * 问题:要想表达出没有参加考试和考试成绩为0的区别?我们应该用Integer表示还是用int表示? 
    5.  */  
    6. public class A2015年64日_Integer和int {  
    7.     private static int score;  
    8.     private static Integer score2;  
    9. //  private static boolean ss;  
    10.     public static void main(String[] args) {  
    11.   
    12.         System.out.println("int类型的默认值score2:" + score);// 0  
    13.   
    14.         System.out.println("Integer类型的默认值score:" + score2);// null  
    15.   
    16.         /* 
    17.          * if(score==null){//报错因为score是int类型的不能和null比较 
    18.          *  
    19.          * } 
    20.          */  
    21. //      if(ss==true)  
    22. //      score2 = 0;  
    23.         if (score2 == null) {  
    24.             System.out.println("没有参加考试!!!");  
    25.         } else if (score2 == 0) {  
    26.             System.out.println("考试成绩为0分!!!");  
    27.         } else {  
    28.             System.out.println("考试成绩为" + score2);  
    29.         }  
    30.           
    31.         integer();  
    32.     }  
    33.   
    34.     public static void integer() {  
    35.         String string = "12345";  
    36.         Integer i = Integer.parseInt(string);// 把字符串解析为Integer类型  
    37.         Integer max = Integer.MAX_VALUE;  
    38.         Integer min = Integer.MIN_VALUE;  
    39.         System.out.println("Integer.parseInt(string)=" + i);  
    40.         System.out.println("integer的最大值:"+max+",最小值:"+min);  
    41.     }  
    42. }  

    展开全文
  • 索引是什么? MySQL官方对索引的定义为:索引(Index)是帮助MySQL高效获取数据的数据结构。 可以得到索引的本质:索引是数据结构。 你可以理解为“排好序的快速查找的数据结构”。一般来说索引本身也很大,不可能...
  • string的内存管理是由系统处理,除非系统内存池完,不然不会出现这种内存问题。 char *的内存管理由用户自己处理,很容易出现内存不足的问题。 当我们要存一个串,但是不知道其他需要多少内存时, string来...
  • c++编程里面endl与\n的区别,endl除了具备\n的换行功能外,还调用输出流的...如果用在输出到显示器的场合.最好endl。如要不立即显示,并且兼顾代码的执行效率的时候,可以考虑\n,这样不刷新缓冲区,这样会更快。
  • 什么时候用margin好,什么时候用padding好?

    万次阅读 多人点赞 2019-05-15 09:44:45
    什么时候用margin好,什么时候用padding好?】 每篇分享文从 【背景介绍】【知识剖析】【常见问题】【解决方案】【编码实战】【扩展思考】【更多讨论】【参考文献】 八个方面深度解析前端知识/技能,本篇分享...
  • 很多时候我们很自然的认为,for循环的时候使用foreach和原来的for循环下标的方式遍历是相同的。而且因为foreach循环写法简单,很容易理解,而且少去了很多麻烦的变量,所以估计学会使用foreach循环之后,很多人...
  • CSS中什么时候用id什么时候用class

    千次阅读 2016-06-22 12:57:03
    还可以选择用户自己定义的id或者class。id与class的最主要不同就在于id不能重复,只能使用一次,一个id只能用于一个标签。而class可以重复使用,同一个class可以定义多个标签... 那么什么时候使用id,什么时候使用cl
  • /*  * int是java提供的8种原始数据类型之一。Java为每个原始类型提供了封装类,Integer是java为int提供的封装类。int的默认值为0,  * 而Integer的默认值为null  * ,即Integer可以区分出未赋值和值为0的...JSP
  • insert语句中要exists的是select子句中,也都可以表连接来改写。 update、delete语句中,有的时候必须使用exists: 需要根据表A的判断条件,来update、delete表B的某一条记录的时候,就必须使用exists了...
  • 什么是进程什么是线程?进程是指系统中正在运行的一个应用程序;程序一旦运行就是进程进程可以认为是程序执行时的一个实例。进程是系统进行资源分配的独立实体, 且每个进程拥有独立的地址空间。一个进程无法直接...
  • 什么时候用DFS,什么时候用BFS? 二维数组的题目,N小于20的,适用DFS。而一般 N 200,N这种,一定不可能DFS去做。而且并不只是整个题目不能DFS,其中的每一步也不能使用DFS。 ...
  • 我连什么是索引都不是很清晰明了,你给我讲什么建立索引的时机?!!! 是的,很多同学只是有所耳闻,并且可能就是只知道索引可以优化sql效率,但是至于其所以然并不清晰。那么我们现在先谈谈什么是索引。 ...
  • C++什么时候用new,什么时候不用new

    千次阅读 2016-08-27 11:23:31
    void func() { Student st;...st只是局部变量,出了函数st就被销毁了,这样不利于传递参数等,那就得用全局变量了,而new就避免使用全局变量。 void func() { Student *st=new Student; st->name="hel
  • 对于性能差别是什么,适合什么情况下应用呢?于是我对它们进行了一些测试,并记录了测试数据供大家分享。  测试的内容主要是map和hash_map的添加、删除、查找和遍历操作,首先进行了几组测试,分别是10万次、30万...
  • 编程时候适合音乐

    千次阅读 2014-06-24 20:14:16
    1. 不能太嘈杂,会影响思考; 2. 听起来要悦耳舒心,自己讨厌的音乐下工作,绝对是一种煎熬;...最理想的效果是能有效的低档住周围的噪音,又能全身心投入学习或者工作的时候被遗忘,还能
  • 什么时候使用存储过程比较适合

    千次阅读 2010-11-11 15:14:00
    什么时候使用存储过程比较适合 <br />总结:当一个事务涉及到多个SQL语句时或者涉及到对多个表的操作时就要考虑存储过程;当一个事务的完成需要很复杂的商业逻辑时(比如,对多个数据的操作,对多个...
  • 多个字段查询什么情况下联合索引 什么时候分别创建单列索引呢? 1,首先要确定优化的目标,在什么样的业务场景下,表的大小等等。如果表比较小的话,可能都不需要加索引。  2,哪些字段可以建索引,一般都...
  • 数据库设计过程中我们要本着够用的原则,如果一味的把数据字段范围设为最大或者默认值的话,会导致存储空间大量的浪费。数据量特别大的情况下,这样的设计原理将会使数据库空间造成严重的浪费,也会对数据库的...
  • 到底什么时候索引

    千次阅读 2018-03-18 10:28:08
    创建索引的时候,应该考虑哪些列上可以创建索引,哪些列上不能创建索引。一般来说,应该这些列上创建索引:经常需要搜索的列上,可以加快搜索的速度;作为主键的列上,强制该列的唯一性和组织表中数据的...
  • 虚方法,抽象方法 很多时候用在 多态 这里!! 对于多态: 就是说 父类定义的 虚方法 ,如果有子类改写,那么 其不同子类的对象 优先调用各自的 改写方法,如果没改写,就调用父类的 打个比方...
  • 悲观锁,乐观锁,只适用于更新操作 ...悲观锁假定其他用户企图访问或者改变你正在访问、更改的对象的概率是很高的,因此悲观锁的环境中,你开始改变此对象之前就将该对象锁住,并且直到你提交了所作的
  • php中什么时候用try...catch语句

    千次阅读 2016-11-01 12:06:34
    php中什么时候用try…catch语句1、当调用其他平台接口的时候需要使用try…catch来捕获错误防止意外的发生2、函数封装的时候防止意外错误发生,以产生错误码,能更快速的定位问题try { //…} catch(Exception $e)...
  • 到底什么时候多线程

    万次阅读 2014-05-10 17:40:56
    到底什么时候多线程? 我想大多数人学习多线程时
  • 这种时候,一个线程是服务不了多个用户的,会产生因为资源独占产生的等待问题。 例如:编写一个耗时的单线程程序:  新建一个基于对话框的应用程序SingleThread,主对话框IDD_SINGLETHREAD_DIALOG添加一个按钮,...
  • Spring的容器是在什么时候启动的,ApplicationContext手动加载和web.xml中 配置和有什么区别,还有bean是在什么时候生成的, 是spring容器创建完成的时候就生成了还是需要时候才会生成
  • 首先想到的是c语言中的 **malloc** 和 **free** ,这两个是库函数,而c++中 new 和 delete是运算符(和 + - * /一样),使用new的时可以看成使用默认使用构造函数+malloc,使用delete时可以堪称使用析构函数+...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,715,786
精华内容 686,314
关键字:

得在什么时候用合适