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相关推荐

  1. mysql leave的作用_MySQL数据库中DELIMITER的作用

    以下的文章主要是向大家描述的是MySQL数据库中delimiter的作用是什么?我们一般都认为这个命令和存储过程关系不大,到底是不是这样的呢?以下的文章将会给你相关的知识,望你会有所收获. 下面是一个 ...

  2. mysql delimiter的作用_MySQL数据库中delimiter的作用概述

    以下的文章主要是向大家描述的是MySQL数据库中delimiter的作用是什么?我们一般都认为这个命令和存储过程关系不大,到底是不是这样的呢?以下的文章将会给你相关的知识,望你会有所收获. 其实就是告 ...

  3. MySQL数据库中视图的作用

    数据库中视图的作用 视图是从一个或几个基本表(或视图)导出的表.它与基本表不同,是一个虚表.数据库只存放视图的定义,而不存放视图对应的数据,这些数据仍存放在原来的基本表中.所以基本表中的数据发生变化, ...

  4. 什么是数据库?数据库的作用想学数据库必看 (1)

    1.DDL (Data Definition Language) 数据定义语言 数据定义语言 , 用来定义数据库对象:库 丶 表 丶 列等; CREATE 丶 ALTER 丶 DROP2.DML (D ...

  5. oracle中exist什么意思,oracle中not exists 是什么意思 , oracle数据库中exists的作用

    导航:网站首页 > oracle中not exists 是什么意思 , oracle数据库中exists的作用 oracle中not exists 是什么意思 , oracle数据库中exist ...

  6. 简述er图的作用_数据库关系图的作用是什么?

    你的位置: 问答吧 -> MSSQL -> 问题详情 数据库关系图的作用是什么? 一.数据库关系图的作用是什么? 二.ER图的作用是什么? 三.两者之间的差别和联系??? 作者: zhan ...

  7. 测牛学堂:分享软件测试要学习的数据库基础(一)

    测试要学习的数据库知识 我们说了优秀的测试,是要懂一些数据库的知识的.今天开始,跟大家分享一系列软件测试需要掌握的数据库的知识,希望可以给大家带来收获! 数据库简单理解 什么是数据库?从字面理解,数据 ...

  8. 数据库中触发器的作用是什么?

    数据库中触发器的作用是什么? 什么是触发器 触发器是一种特殊的存储过程,只能由事件驱动调用,而无法直接调用. 触发器有什么用 当对数据库的相关对象(数据库.表.视图)进行某些特定的操作时,数据库会自动 ...

  9. Oracle数据库 数据库调优

    文章目录 一.数据库调优的目标 二.确定调优目标的方式 1. 用户的反馈 2. 日志分析 3. 服务器资源使用资源 4. 数据库内部状况监控 三.数据库的调优维度 1. 选择合适的DBMS 2. 优化 ...

  10. mysql删除数据库数据库语句怎么写_mysql数据库的删除语句怎么写

    我就废话不多说了,大家还是直接看代码吧~create or replace function aa1(a1 integer[],a2 bigint) returns void AS $$declare ...

最新文章

  1. SharePoint 网站元素介绍
  2. 网站内容收录除了原创性和质量其他因素也少不了
  3. caffe学习(二):利用mnist数据集训练并进行手写数字识别(windows)
  4. go linux环境搭建,Linux 下 Go 环境搭建以及 Gin 安装
  5. 直播回顾 | 数据驱动实践的三大运营场景讲解
  6. zabbix初始化设置时无法到DB配置页面
  7. 中文表示什么_越南水果摊贴出中文标语,看清文字内容后,中国游客:不再吃了...
  8. python如何创建excel文件_Python xlrd/xlwt 创建excel文件及常用操作
  9. python中dataframe合并列名日期到季度_python – 如何在特定日期范围内的pandas列DataFrame中对某些值求和...
  10. H.264的NALU,RTP封包说明(转自牛人)
  11. 【Elasticsearch】 es join 多表关联如何设计
  12. 人品计算器demo,Intent传值Android
  13. 下一站,北京-欢乐谷
  14. oracle grant的用法,oracle grant总结
  15. 动易模板制作示例(三)
  16. pert计算公式期望值_信息系统项目管理师计算题详解:PERT(计划评审技术)计算...
  17. DNS解析、智能DNS原理及CDN应用和原理
  18. 1068 万绿丛中一点红 (20分)测试点分析
  19. 【图解】共模干扰,差模干扰
  20. 【大咖有约】猎聘网单艺:人才大数据驱动的人力资源革新

热门文章

  1. 我的私房IT学习网站
  2. 《哲学与人生》的读书札记
  3. Win7平台上通过QQ查询对方IP地址
  4. Filezilla server 使用教程
  5. MFC控件之cimagelist,加载不上位图
  6. ep100can程序
  7. matlab示波器的峰值测量,峰峰值定义_示波器峰峰值怎么看
  8. 计算机网络在电力系统继电保护的应用毕业论文,电力系统继电保护技术 毕业论文.doc...
  9. java drawlines()方法
  10. 使用Java对接永中格式转换