为什么要学习数据库,数据库有什么作用呢,以及为什么要选mysql
1.为什么要使用数据库
程序员Jack还是在在校学习期间,就听高年级的大哥忠告,“小伙子,搞编程,想要成为最牛逼的程序员,一定要学好C/C++语言和数据结构及算法”,Jack谨记了这句忠告,因为这位高年级的哥们还没毕业就已经被BAT公司预定,在学校那是风光无限,得到了很多高年级美女学姐的青睐。
经过一段时间的刻苦学习,Jack终于把C++ 和数据结构还有算法学得有点模样了,不自觉就进入初级装逼模式,在同学面前那是指手画脚,趾高气昂。。。。
这种状态一直持续到实习期间,Jack 进入一家小有名气的游戏开发公司实习,被安排到一个棋牌游戏的项目组。项目组的项目经理颇为认同新来的Jack 同学(因为面试时问到的C++和数据结构相关的试题,只有Jack 力压群雄,达到了项目经理的要求,甚至有几年工作经验的程序员都搞不定的A*算法,Jack也是对答如流!),并没有给他安排一些意义不大的杂活给他干,而是编制为开发团队的正式一员,享受正式员工的待遇!此时的Jack 意气风发,代码撸的更加卖力了,因此也很快融入了开发团队中。。。
有一天,项目组的小组长给Jack分配了一个新的任务,让Jack 实现用户登陆模块,具体需求如下:
1.游戏玩家访问游戏客户端,通过客户端界面输入用户名和密码
2.在游戏玩家点击”确认”后,客户端连接至数据库服务器对用户名和密码进行确认,
如果验证成功,则 玩家可以进入大厅,如果失败,则不允许进入!
3.。。。
啊! 数据库! 什么东东?
因为项目需要,Jack 马上紧张起来,翻阅各种资料,耗费了几个废寝忘食的日日夜夜,才从以下几个方面搞清楚了 why do we need database?
数据库概念(Database),就是按照数据结构来组织、存储和管理数据,建立在计算机存储设备上的仓库。我们可以把数据库看成电子化的文件柜,也就是存储电子文件的处所,用户可以对文件中的数据进行新增、查询、更新、删除等操作。
为什么需要数据库
一般情况下,要保存用户的数据,一个最简单的方法是把用户数据写入文件。例如,要保存用户的密码信息,可以写入下面的文件中txt文件:
id,name,passwd
1,小明,123456
2,小红,654321
3,小军,888888
4,小丽,666666
保存用户购买的道具prop.txt
id,prop,price,num
1,金戒指,12,1
1,银戒指,10,1
2,房卡,10,10
3,鲜花,2,6
1,房卡,10,100
… …
但是,随着应用程序的功能越来越复杂,数据量越来越大,如何管理这些数据就成了大问题:
读写文件并解析出数据需要大量重复代码;
从成千上万的数据中快速查询出指定数据需要复杂的逻辑。
数据缺乏安全感
如果每个应用程序都各自写自己的读写数据的代码,一方面效率低,容易出错,另一方面,每个应用程序访问数据的接口都不相同,数据难以复用。
所以,数据库作为一种专门管理数据的软件就出现了。应用程序不需要自己管理数据,而是通过数据库软件提供的接口来读写数据。至于数据本身如何存储到文件,那是数据库软件的事情,应用程序自己并不关心:
这样一来,编写应用程序的时候,数据读写的功能就被大大地简化了。
2.程序员为什么要学习mysql
几乎任何一个企业级应用,都要用到数据库。
无论开发、测试、运维还是架构师,数据库都是加分神器!
小的软件企业分工不明确,全能型人才能得到更多的机会(就业和提升)
外包和自由程序员必备
3.数据库的选择
3.1主流数据库的简介
当今市面上的数据库产品众多,每种数据库都有自己的优势和缺点,或出于数据库的性能和易用性考虑,或出于商用和开源考虑,如何选择自己合适的数据库产品,成为重中之重!
主要的数据库产品有如下几种:
Oracle - 作为一种商业性数据库,在事务处理方面有自己独到的优势,功能比较强大,市场占有率也比较高。oracle数据库是一种大型的关系型数据库,在使用上会收费。在部署上,可以根据自己的环境采用单节点或者集群部署。经常会使用于银行和金融机构,存储大量数据,可以对海量数据进行分析处理,在安全性上使用访问控制和多种数据备份机制,可靠性高。
Mysql - 作为一种开源的轻量级数据库,在开源数据库中比较流行,由于小巧安装方便快捷,经常会用于互联网公司,维护也比较方便。因为开源,使用上比较灵活,mysql还有许多第三方的存储引擎,可以根据自己的需要进行安装。在功能上mysql可能没有oracle强大,但是对于资源的占用非常少,数据恢复快。在维护上,追求稳定的性能和易用性。
Redis - 作为一种缓存数据库,对于数据的读写特别快,redis之所以快,是因为它数据放在内存中,但是内存比较贵,另一方面,内存也是有限制的,当内存不够时,就需要使用redis的分布式方案。redis作为一种非关系型数据库,可以适用于高并发场景,配合关系型数据库作为做高速缓存,也可以降低磁盘IO,使用键值对存储,不适用于结构复杂的sql数据
另外MongoDB, SQL Server等数据库也是常用的数据库。
选择数据库时,既要考虑成本,还有考虑维护的稳定和便利性,结合自己的设备规模。最重要的,需要结合我们的业务,如果高安全性,海量数据,能承担高昂的成本,可以选择oracle;一般应用的快速查询,高并发访问,一般情况下都可以选择mysql,另外特殊情况特殊处理!
3.2使用mysql的优势
如今很多主流网站都选择MySQL数据库来存储数据,比如阿里巴巴的淘宝。那么,MySQL到底有什么优势,吸引了这么多用户?主要是基于以下几点原因:
开源
开源软件是互联网行业未来发展的趋势。MySQL是开放源代码的数据库,这就使得任何人都可以获取MySQL的源代码,并修正MySQL的缺陷,并且任何人都能以任何目的来使用该数据库,这是一款自由使用的软件。对于很多互联网公司来说,选择使用MySQL是一个化被动为主动的过程,无须再因为依赖封闭的数据库产品而受牵制。
成本因素
MySQL社区版是完全免费的,企业版基于服务和支持收费。相比之下,Oracle、DB2和SQL Server价格不菲,再考虑到搭载的服务器和存储设备,那么成本差距是巨大的。
跨平台性
MySQL不仅提供Windows系列的版本,还提供UNIX、Linux和Mac OS等操作系统对应的版本。因为很多网站都选择UNIX、Linux作为网站的服务器,所以MySQL具有跨平台的优势。
容易使用
MySQL是一个真正的多用户、多线程SQL数据库服务器,能够快速、高效、安全地处理大量的数据。MySQL和Oracle性能并没有太大的区别,在低硬件环境下,MySQL分布式的方案同样可以解决问题,而且成本比较经济,从产品质量、成熟度、性价比来讲,MySQL都是非常不错的。另外,MySQL的管理和维护非常简单,初学者很容易上手,学习成本较低。
版本选择
MySQL从5.7版本直接跳跃发布了8.0版本,可见这是一个令人兴奋的里程碑版本。MySQL 8版本在功能上做了显著的改进与增强,不仅在速度上得到了改善,还提供了一系列巨大的变化,为用户带了更好的性能和更棒的体验。
三个字形容,就是比以前的更棒 棒 棒!
为什么要学习数据库,数据库有什么作用呢,以及为什么要选mysql相关推荐
- mysql leave的作用_MySQL数据库中DELIMITER的作用
以下的文章主要是向大家描述的是MySQL数据库中delimiter的作用是什么?我们一般都认为这个命令和存储过程关系不大,到底是不是这样的呢?以下的文章将会给你相关的知识,望你会有所收获. 下面是一个 ...
- mysql delimiter的作用_MySQL数据库中delimiter的作用概述
以下的文章主要是向大家描述的是MySQL数据库中delimiter的作用是什么?我们一般都认为这个命令和存储过程关系不大,到底是不是这样的呢?以下的文章将会给你相关的知识,望你会有所收获. 其实就是告 ...
- MySQL数据库中视图的作用
数据库中视图的作用 视图是从一个或几个基本表(或视图)导出的表.它与基本表不同,是一个虚表.数据库只存放视图的定义,而不存放视图对应的数据,这些数据仍存放在原来的基本表中.所以基本表中的数据发生变化, ...
- 什么是数据库?数据库的作用想学数据库必看 (1)
1.DDL (Data Definition Language) 数据定义语言 数据定义语言 , 用来定义数据库对象:库 丶 表 丶 列等; CREATE 丶 ALTER 丶 DROP2.DML (D ...
- oracle中exist什么意思,oracle中not exists 是什么意思 , oracle数据库中exists的作用
导航:网站首页 > oracle中not exists 是什么意思 , oracle数据库中exists的作用 oracle中not exists 是什么意思 , oracle数据库中exist ...
- 简述er图的作用_数据库关系图的作用是什么?
你的位置: 问答吧 -> MSSQL -> 问题详情 数据库关系图的作用是什么? 一.数据库关系图的作用是什么? 二.ER图的作用是什么? 三.两者之间的差别和联系??? 作者: zhan ...
- 测牛学堂:分享软件测试要学习的数据库基础(一)
测试要学习的数据库知识 我们说了优秀的测试,是要懂一些数据库的知识的.今天开始,跟大家分享一系列软件测试需要掌握的数据库的知识,希望可以给大家带来收获! 数据库简单理解 什么是数据库?从字面理解,数据 ...
- 数据库中触发器的作用是什么?
数据库中触发器的作用是什么? 什么是触发器 触发器是一种特殊的存储过程,只能由事件驱动调用,而无法直接调用. 触发器有什么用 当对数据库的相关对象(数据库.表.视图)进行某些特定的操作时,数据库会自动 ...
- Oracle数据库 数据库调优
文章目录 一.数据库调优的目标 二.确定调优目标的方式 1. 用户的反馈 2. 日志分析 3. 服务器资源使用资源 4. 数据库内部状况监控 三.数据库的调优维度 1. 选择合适的DBMS 2. 优化 ...
- mysql删除数据库数据库语句怎么写_mysql数据库的删除语句怎么写
我就废话不多说了,大家还是直接看代码吧~create or replace function aa1(a1 integer[],a2 bigint) returns void AS $$declare ...
最新文章
- SharePoint 网站元素介绍
- 网站内容收录除了原创性和质量其他因素也少不了
- caffe学习(二):利用mnist数据集训练并进行手写数字识别(windows)
- go linux环境搭建,Linux 下 Go 环境搭建以及 Gin 安装
- 直播回顾 | 数据驱动实践的三大运营场景讲解
- zabbix初始化设置时无法到DB配置页面
- 中文表示什么_越南水果摊贴出中文标语,看清文字内容后,中国游客:不再吃了...
- python如何创建excel文件_Python xlrd/xlwt 创建excel文件及常用操作
- python中dataframe合并列名日期到季度_python – 如何在特定日期范围内的pandas列DataFrame中对某些值求和...
- H.264的NALU,RTP封包说明(转自牛人)
- 【Elasticsearch】 es join 多表关联如何设计
- 人品计算器demo,Intent传值Android
- 下一站,北京-欢乐谷
- oracle grant的用法,oracle grant总结
- 动易模板制作示例(三)
- pert计算公式期望值_信息系统项目管理师计算题详解:PERT(计划评审技术)计算...
- DNS解析、智能DNS原理及CDN应用和原理
- 1068 万绿丛中一点红 (20分)测试点分析
- 【图解】共模干扰,差模干扰
- 【大咖有约】猎聘网单艺:人才大数据驱动的人力资源革新