我的数据库学习历程
Posted 啊~小 l i
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我的数据库学习历程相关的知识,希望对你有一定的参考价值。
1.对所学数据库技术和系统开发工具的理解和认识
在这一学期中我们课程主要使用的数据库管理系统是SQL Server。SQL Server是微软开发的关系型数据库(正版的SQL Server要收费),是早些年很火的数据库,后来拥有了Oracle数据库(作为大型数据的代表,但是是甲骨文公司开发的,面向大型企业收费的数据库)以及轻量型数据库mysql(MySQL作为开源的数据库,受到了很多中小型企业的青睐,很快在市场中占有一席之地)。现在的SQL Server基本使用在早些年已经做好的系统上。我们开发使用的数据库就是MySQL,MySQL作为开源轻量化的数据库具有很大的优势。MySQL5.7之后支持自我修复式集群、原生json的支持、新的优化器。近几年,阿里云也是成功的把MySQL数据库优化到了10万QPS(十万QPS相当于我本地的redis数据库的性能)。所以我选择了MySQL数据库作为使用对象。由于MySQL本身没有可视化的界面,Navicat Premium 15是一个不错的连接数据库的可视化界面,另外支持从数据库中导入实体方便画E-R图。图1、图2为reedis(key-values存储格式的内存数据库)、MySQL(轻量型关系数据库)截图。
图1 redis数据库截图
图2 MySQL数据库截图
2.数据库学习和系统开发过程中的收获和心得体会
虽然我已经接触过数据库,但是在使用上有很多不知道的细节,比如触发器的设计,我之前只是知道,数据的操作记录往往是和高级语言联系在一起的。触发器我从来没有用到过,我在开发系统连接数据库的时候也没用过触发器,基本数据库的日志也基本用log4j代替了。所以对触发器了解很少,也没真正的使用过。对于SQL Server我也是没用过,在本学期的上机课,我学会了使用SQL Server虽然他和MySQL均是关系型数据库,但是MySQL对编码格式的分类以及对数据的控制比SQL Server要严格很多。比如,MySQL中对于utf-8编码格式分多种例如:utf-8、utf-8mb4。每一种在存放的时候往往会有不同。我之前在Spring Boot中使用的中文字符,在utf-8下插入数据库就会报错。因此,学习过SQL Server之后要想使用MySQL只需要学习一下他的编码格式就可以上手使用,毕竟SQL语言是相通的。
3.存在的问题和不足
- 触发器接触较少,不会设计使用。
- 授权,回收不是特别熟练,因为在MySQL,系统开发中很少使用其他用户,基本都是root用户,在开发过程中,几乎不会配置多个用户。如果对使用多个用户连接数据库,第一会导致数据库的连接用户增多导致系统的负担增大,第二会MySQL默认支持100个用户连接(可以通过修改配置优化数据库)。
- 不会数据库的优化查询、MySQL的优化、不会MySQL的读写锁、还没接触过《高性能MySQL》。
4.对国产数据库技术和工具认识和展望
巨杉数据库
自研分布式数据库内核,具备多模能力的SequoiaDB-DP兼容多种SQL结构化数据、NoSQL半结构化数据和Object非结构化对象数据引擎。各类数据可通过Apache SparkSQL进行实时数据分析,避免传统数据仓库架构导致的ETL延迟及数据多份冗余。SequoiaDB 巨杉数据库也支持图形化界面进行数据操作、运维监控和集群管理。
达梦数据库管理系统(DM8)
DM8是达梦公司在总结DM系列产品研发与应用经验的基础上,坚持开放创新、简洁实用的理念,推出的新一代自研数据库。DM8吸收借鉴当前先进新技术思想与主流数据库产品的优点,融合了分布式、弹性计算与云计算的优势,对灵活性、易用性、可靠性、高安全性等方面进行了大规模改进,多样化架构充分满足不同场景需求,支持超大规模并发事务处理和事务-分析混合型业务处理,动态分配计算资源,实现更精细化的资源利用、更低成本的投入。一个数据库,满足用户多种需求,让用户能更加专注于业务发展。
随着美国对中国的一步步打压,国产的产品正在一步一步的替代外国的产品。现在我们有技术,有能力去研发属于自己的东西。在大数据时代,数据是大数据的根基,可以通过对数据的挖掘分析得到你想要的信息。因此,数据安全大于一切,我们必须发展属于自己的数据库管理系统,使用自己的数据库管理系统来逐步替代当前主流的Oracle、MySQL数据库。如今很多政府相关的数据库软件招标都指明了要求国产数据库。美国就曾此指责我们违反商业公平原则,从而在美国本土对于中国企业,如:华为、阿里等,进行一轮又一轮的限制与施压。因此,我们必须加大数据库的研发力度,加快国产数据库的建设进程,让自研的国产数据库可以与主流数据库抗衡。
5.下一步的努力方向和目标
下一步的主要目标就是在暑假学习机器学习,完成机器学习的基础算法(线性回归,softmax分类算法、多层感知机)以及计算机视觉相关的知识的学习,同时也要经常回顾Java部分的基础知识,确保自己不会遗忘Java、Java web、spring、maven、spring boot等相关知识。如果有时间的话我还想看完《Java变成思想》。时代的潮流是往大数据,人工智能方向发展,但是人工智能对学历要求比较高,因此,在学习技术的同时应当学习一些基础理论知识,应对不久的未来考研的需要。因此,要在学习技术的同时,学习基础理论,争取在未来的考研中能够顺利通过初试和复试,为自己创造一个更好的提升自己的机会。增加自己的就业竞争力。
以上是关于我的数据库学习历程的主要内容,如果未能解决你的问题,请参考以下文章