发表于: 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 就会 出现问题。
评论