发表于: 2017-10-06 23:56:17

1 743


今日完成的事情:

Mysql数据库插入100w数据,然后是1亿整体教程还是师兄们提供的,理解不透,整段代码就不贴了,也不是自己写的,说说我自己的收获。


首先是数据库表建立,四个字段id没什么好说的主键自增,col1字段用随机数组来获取,数组概念与高中相似,是一个集合可以理解为是一个巨大的盒子,里面可以按顺序存放多个类型相同的数据,比如可以定义 int 型的数组 scores 存储 4 名学生的成绩。

int[] scores = { 78, 93, 97, 84, 63 };

 

然后是随机取数1-10可以用Math.random() 会得到一个0-1之间的随机浮点数,然后乘以10,并强转为整型即可。对于col的字段就是先,生成string的十个数组,然后用随机数调用;col3原理相同,而Col2用递归的看不懂。

 

插入数据,传统插入方法:通过Connection获得Statement,再调用Statement对象的execute函数执行sql语句,插入一行,这样循环理论也是可以插入大数据,但是时间复杂度太高,效率低,所以作者根据Mysql数据库的操作时,一个sql插入语句中可以插入多行数据的原理,通过StringBuffer构造一个比较大的sql语句,每个语句可以插入1万行的数据,这样循环100次即可完成插入100w条数据。

这里的一个sql语句可以插入多条数据,我也简单测试了一下,可行;

stringBuffer是可变长的字符串,至于为什么StringBuffer可以变长? 和String内部是一个字符数组一样,StringBuffer也维护了一个字符数组。 只是这个字符数组,留有冗余长度,这样调用append插入和追加就可以了,整体可以理解代码块的作用吧,

 

然后暂时没有深究了,直接往数据库里插数据了,100w10秒左右,然后建立索引测试搜索效率结果发现意义不大,然后插了一个亿。

时间还算合理,100w10s那一个亿也就1000s左右,

 

不过一个亿的数据真是够大客户端飙升,直接占了8G

 

 

 

100w的时候数据查询时间也就毫秒计,亿的是秒了,建个索引都会卡,查询前后效率,不过感觉区别还不是很大,我看了师兄的日报,几乎也就这点差别吧,或许以后做了项目,数据库的数据真正多来就能真正体会到了吧


看了一下深度思考,有思考有百度,暂时说几个自己知道的吧,不懂的后续在补充

1.maven是什么?

Maven 是专门用于构建和管理Java相关项目的工具。

使用Maven管理的Java 项目都有着相同的项目结构;有一个pom.xml 用于维护当前项目都用了哪些jar包;所有的java代码都放在 src/main/java 下面;所有的测试代码都放在test/main/java 下面 

 

2. clean,install,package,deploy分别代表什么含义?

mvn clean:清理项目建的临时文件,一般是模块下的target目录

mvn package:打包到本项目,一般是在项目target目录下

mvn install:打包会安装到本地的maven仓库中

mvn deploy:将打包的文件发布到远程(如服务器)参考,提供其他人员进行下载依赖

 

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

JAVA语言中不允许有DATE类型存在,如果有会被强制转换成long类型,可能会造成数据丢失

 

8.    唯一索引和普通索引的区别是什么,什么时候需要建唯一索引。

唯一索引,与普通索引类似,但是不同的是唯一索引要求所有的类的值是唯一的,这一点和主键索引一样. 唯一索引,与普通索引类似,但是不同的是唯一索引要求所有的类的值是唯一的,这一点和主键索引一样.但是他允许有空值,当有数据为null的时候就需要用唯一索引但是他允许有空值,当有数据为null的时候就需要用唯一索引

 

9.    如果对学员QQ号做了一个唯一索引,在插入数据的时候,是否需要先判断这个QQ号已经存在了?

不需要,因为唯一索引允许空值存在,可以为NULL  所以就不需要判断

 

13.   为什么不可以用Select * from table?

select *最大的问题是可能会多出一些不用的列,这就杜绝了索引覆盖的可能性,导致查询的成本几何级增高

 

16.   为什么要使用Interface,而不是直接使用一个实体类来完成任务?InterfaceImpl这种方式的好处是什么?

对代码进行解耦,使用SpringIOC容器来进行资源的控制,使用注入来传递资源,这样做可以降低代码的耦合程度,代码可以有更高的复用率,修改和复用更加方便

 

明日计划的事情:

状态不好,调整一下。

 


遇到的问题及解决方法:

学习方法以及效率低下,调整一下

 


收获:

调整一下

 

 

 



返回列表 返回列表
评论

    分享到