发表于: 2018-01-28 15:16:12

1 548


  1 昨天的表格字段是汉语,今天重新建立了个表格

   添加索引的 sql语句为 : CREATE INDEX name on enlist (name)

    我认为还应该 给id 建立索引。

2 删除 索引的sql 为DROP INDEX name on enlist

  有索引的时候插入10条数据 时间为0.002s

  无索引的时候插入数据为 逐条插入,每条用时0.002s  

   

  因为手动插入数据不方便 ,我之后看了些资料 用函数插入了100 条数据。 方法为 在navicat的菜单栏选择函数,点击之后选择函数,然后点击完成。  开始写sql  这是我的sql   

BEGIN

DECLARE i INT;

  SET i = 1;

WHILE i<101 DO

INSERT INTO enlist (NAME ,id) VALUES("大蜗牛",i);

SET i= i+1;

END WHILE;

RETURN 0;

END

    写完sql 保存即可。 只就是navicat上写一个简单的while循环。

11   (5)为什么DB的设计中要使用Long来替换掉Date类型?   

        在mysql中datetime 日期+时间 占用 8 个字节; 

              timestamps 日期+时间 占用4 个字节;

   在java中对时间的记录有好几个类 有java.util.Date  java.sql.Date   java.sql.Time   java.sql.TimeStamp  java.util.Calendar  java.util.TimeZone  

  但是java.util.Date 转换成java.sql.Date 的时候,时间的分秒会被去掉,时间的精度发生变化。 

  在数据库 jdbc中用的类是java.sql.Date 而在java代码中对时间的记录大多数是 java.util.Date  往往导致转换过程中发生误差。

   因此可以把date 转化成long类型  既有利于计算时差,又有利于数据和java之间的传输。

   (6)自增ID有什么坏处?什么样的场景下不使用自增ID?

       坏处:   a 数据不存在连续性 。

              b 数据重复了,不会处理和提示。

              c 在面对对象时 不能保证完整性。

              d 在分库的时候 id就不唯一了(第二个数据库会从0 开始)。

             解决方法 :使用uuid ,使用uuid在数据库移植,在多表多数据库                            存储时比较放便。

    不使用自增id的场景: a 如果表中有其他能唯一表示该行的数据列,就可以不                            使用自增id 

                         b 在做分布式数据库的时候,要求同步,自增id 就会                            出现问题。

   


  

     






返回列表 返回列表
评论

    分享到