Mysql的简介和选择

news/2024/4/24 21:30:59/

文章目录

  • 前言
  • 一、为什么要使用数据库
    • 数据库的概念
    • 为什么要使用数据库
  • 二、程序员为什么要学习数据库
  • 三、数据库的选择
    • 主流数据库简介
    • 使用MySQL的优势
    • 版本选择
  • 四、Windows 平台下安装与配置MySQL
    • 启动MySQL 服务
    • 控制台登录MySQL命令
  • 五、Linux 平台下安装与配置MySQL
  • 总结


前言

程序员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

... ...

但是,随着应用程序的功能越来越复杂,数据量越来越大,如何管理这些数据就成了大问题:

  1. 读写文件并解析出数据需要大量重复代码;
  2. 从成千上万的数据中快速查询出指定数据需要复杂的逻辑。
  3. 数据缺乏安全感

如果每个应用程序都各自写自己的读写数据的代码,一方面效率低,容易出错,另一方面,每个应用程序访问数据的接口都不相同,数据难以复用。

所以,数据库作为一种专门管理数据的软件就出现了。应用程序不需要自己管理数据,而是通过数据库软件提供的接口来读写数据。至于数据本身如何存储到文件,那是数据库软件的事情,应用程序自己并不关心:

这样一来,编写应用程序的时候,数据读写的功能就被大大地简化了。

二、程序员为什么要学习数据库

  1. 几乎任何一个企业级应用,都要用到数据库。
  2. 无论开发、测试、运维还是架构师,数据库都是加分神器!
  3. 小的软件企业分工不明确,全能型人才能得到更多的机会(就业和提升)
  4. 外包和自由程序员必备

三、数据库的选择

主流数据库简介

        当今市面上的数据库产品众多,每种数据库都有自己的优势和缺点,或出于数据库的性能和易用性考虑,或出于商用和开源考虑,如何选择自己合适的数据库产品,成为重中之重!

   

主要的数据库产品有如下几种:

        Oracle - 作为一种商业性数据库,在事务处理方面有自己独到的优势,功能比较强大,市场占有率也比较高。oracle数据库是一种大型的关系型数据库,在使用上会收费。在部署上,可以根据自己的环境采用单节点或者集群部署。经常会使用于银行和金融机构,存储大量数据,可以对海量数据进行分析处理,在安全性上使用访问控制和多种数据备份机制,可靠性高。

        Mysql - 作为一种开源的轻量级数据库,在开源数据库中比较流行,由于小巧安装方便快捷,经常会用于互联网公司,维护也比较方便。因为开源,使用上比较灵活,mysql还有许多第三方的存储引擎,可以根据自己的需要进行安装。在功能上mysql可能没有oracle强大,但是对于资源的占用非常少,数据恢复快。在维护上,追求稳定的性能和易用性。

        Redis - 作为一种缓存数据库,对于数据的读写特别快,redis之所以快,是因为它数据放在内存中,但是内存比较贵,另一方面,内存也是有限制的,当内存不够时,就需要使用redis的分布式方案。redis作为一种非关系型数据库,可以适用于高并发场景,配合关系型数据库作为做高速缓存,也可以降低磁盘IO,使用键值对存储,不适用于结构复杂的sql数据

另外MongoDB, SQL Server等数据库也是常用的数据库。

使用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版本在功能上做了显著的改进与增强,不仅在速度上得到了改善,还提供了一系列巨大的变化,为用户带了更好的性能和更棒的体验。

四、Windows 平台下安装与配置MySQL

免费下载网址:MySQL :: Download MySQL Installer

版本选择 :社区版8.0.12

启动MySQL  服务

  • 图形化界面启动

右击“计算机”,在快捷菜单中选择“管理”命令,如图1-25所示,打开“计算机管理”对话框。也可以执行“开始”|“控制面板”|“管理工具”|“服务”来启动服务。

  • 命令行启动

   查看服务命令:  net start

   关闭服务命令:   net  stop  MySQL80

   启动服务命令:   net start  MySQL80

控制台登陆MySQL命令

mysql -h 127.0.0.1 -uroot -密码

五、Linux 平台下安装与配置MySQL

后面再介绍,持续更新中(个人笔记)


总结

        选择数据库时,既要考虑成本,还有考虑维护的稳定和便利性,结合自己的设备规模。最重要的,需要结合我们的业务,如果高安全性,海量数据,能承担高昂的成本,可以选择oracle;一般应用的快速查询,高并发访问,一般情况下都可以选择mysql,另外特殊情况特殊处理!


http://www.ppmy.cn/news/47786.html

相关文章

基于springboot和ajax的简单项目 06 日志界面的delete功能(根据选择的checkbox)

01.这次后台开始&#xff1b; 顺序依次是dao->xml->service->serviceimpl->controller->html 02.dao接口 public int doDeleteObjects(Param("ids") Integer... ids);03.xml文件 <update id"doDeleteObjects" >delete from sys_lo…

NLP领域顶级会议和期刊汇总(附CCF最新推荐目录)

研究NLP需要关注学术界or大厂AI Lab最新的科研动态&#xff0c;了解技术发展的趋势&#xff0c;写论文才能下笔如有神。找到了论文就能找到要复现的代码和要用到的数据集。 掌握科研动态也有助于提早做好产品规划以及技术预研。 对于NLPer而言&#xff0c;了解科研动态最好的方…

GEE:去除异常值

作者&#xff1a; _养乐多_ 本文记录了在Google Earth Engine (GEE) 平台上对影像去除异常值的方法和代码。 Google Earth Engine (GEE) 提供了多种方法来去除影像异常值&#xff0c;以下是一些可能有用的技巧&#xff1a; 普通异常值过滤&#xff1a;使用 ee.Image.clip() 或…

像素是什么

像素分为设备像素和设备无关像素。 下面说说来龙去脉。 一、显示器 显示图像的电子设备。 &#xff08;一&#xff09;显示器种类 1.LCD LCD&#xff08;Liquid crystal display&#xff09;&#xff0c;是液体晶体显示&#xff0c;也就是液晶显示器&#xff0c;LCD具有功耗低…

C/C++每日一练(20230421)

目录 1. 位1的个数 &#x1f31f; 2. 递归和非递归求和 ※ 3. 俄罗斯套娃信封问题 &#x1f31f;&#x1f31f;&#x1f31f; &#x1f31f; 每日一练刷题专栏 &#x1f31f; Golang每日一练 专栏 Python每日一练 专栏 C/C每日一练 专栏 Java每日一练 专栏 1. 位1的…

企业批量寄件快递教程

了解企业批量寄快递操作流程之前&#xff0c;我们先来解答一下这个问题&#xff1a;什么样的企业需要批量寄快递&#xff1f; 电商行业就不提&#xff0c;本身二者就是相互依存的关系。就商务件来说&#xff0c;具体什么样的企业需要批量寄快递&#xff0c;其实很简单&#xf…

【倒计时4天】金融服务用户体验专场沙龙开启预约

易观&#xff1a;数智化浪潮下&#xff0c;金融业务用户运营从线下向全渠道延伸。用户体验已成为⾦融机构打造差异化的重要抓手。此外&#xff0c;随着⽤户体验的全⾯数字化和精细化&#xff0c;⽤户体验贯穿于整个客户旅程中&#xff0c;做好用户体验管理&#xff0c;体现差异…

分享几个自动化测试的练手项目

学习自动化测试最难的是没有合适的项目练习。 测试本身既要讲究科学&#xff0c;又有艺术成分&#xff0c;单单学几个 api 的调用很难应付工作中具体的问题。 你得知道什么场景下需要添加显性等待&#xff0c;什么时候元素定位需要写得更加优雅&#xff0c;为什么需要断言这个…

如何建立到NAS中新增容器的ssh连接

注&#xff1a;首先需按照教程建立Zerotier连接&#xff0c;然后进入新建的nginx镜像&#xff0c;为root用户建立密码。 查看容器类型 Debian 系镜像: cat /etc/issue Redhat 系镜像: cat /etc/redhat-release Alpine 系镜像: cat /etc/os-release 安装并启动ssh apt-get …

C# GC垃圾回收

C#中的垃圾回收&#xff08;Garbage Collection&#xff0c;简称GC&#xff09;是自动管理内存的一种机制。在C#中&#xff0c;开发人员不必再手动地去管理内存&#xff0c;也不需要关心对象的生命周期和销毁&#xff0c;而是由GC在程序运行时自动完成这些操作。下面是关于C#中…

C++【深入理解多态】

文章目录 一、多态概念与实现&#xff08;1&#xff09;多态的概念&#xff08;2&#xff09;怎么构成多态&#xff08;3&#xff09;虚函数重写的2个例外&#xff08;4&#xff09;经典剖析巩固知识点&#xff08;5&#xff09; override 和 final&#xff08;6&#xff09;小…

【Linux】虚拟机的克隆

【想要克隆虚拟机&#xff0c;被克隆的虚拟机必须是关机状态&#xff1b;】 一、克隆虚拟机 1、右击想要克隆的虚拟机 2、进入到这个页面后点击“下一步” 3、进入到这个页面后点击“下一步” 4、进入这个页面后选“创建完整克隆”&#xff0c;再点击下一步 5、最好将位置改成…

月薪10k和40k的程序员差距有多大?

程序员的薪资一直是大家关注的焦点&#xff0c;相较于其他行业&#xff0c;程序员的高薪也是有目共睹的&#xff0c;而不同等级的程序员处理问题的方式与他们的薪资直接挂钩。 接下来就一起看一下月薪10k、20k、30k、40k的程序员面对问题都是怎么处理的吧&#xff01; 场景一 …

Unity编写Shader基本知识

返回目录 大家好&#xff0c;我是阿赵。 这里通过手写一个最简单的shader&#xff0c;来介绍一下在Unity里面编写Shader的一些基础知识。 一、Shader基本结构 新建一个shader&#xff0c;把里面的内容都删掉&#xff0c;然后输入下面这些内容 shader "testShader"…

如何使用Redis缓存 ?

为什么能用Redis做缓存 &#xff1f; 因为Redis基于内存&#xff0c;读写速度快 Redis 缓存的使用 首先需要读取数据时&#xff0c;前去redis查看是否有该数据如果有&#xff0c;则直接返回&#xff0c;如果没有就要去数据库查找然后更新redis Redis 缓存的类型 只读缓存 …

JavaScript经典教程(二)-- CSS基础部分

179&#xff1a;HTML基础部分&#xff08;元素分类、特性、特殊元素等&#xff09; — 补充 1、盒子模型 定义&#xff1a;一个元素在页面中所占的位置大小&#xff0c;叫盒子模型。 包含的样式&#xff1a;即影响元素大小的样式&#xff1a; width、height、margin、padding…

linux PAM模块简介

PAM模块简介 1. 介绍1.1 概念1.2 验证过程简述 2. 配置文件介绍2.1 PAM的模块类型2.2 PAM的控制标记2.3 PAM的模块路径 3. 验证机制3.1 login的验证机制流程3.2 pam相关文件 4. 示例4.1 ssh远程登录控制4.2 禁止账号间使用su命令切换4.3 限制root从tty1,tty2&#xff0c;tty5登…

SpringBoot自动配置原理分析

前言&#xff1a; 虽然工作中一直使用的是自研的一款基于spring的框架&#xff0c;但是随着springboot在各公司的广泛使用&#xff0c;公司的一些新项目也开始逐渐使用springBoot了&#xff0c;那么springBoot的一些特性就要仔细学习一下了。 什么是自动配置&#xff1f; 还记…

找零问题1-最少硬币

文章目录 找零问题1-最少硬币程序设计程序分析找零问题1-最少硬币 【问题描述】 给定不同面额的硬币 coins 和一个总金额 amount。编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回 -1。(你可以认为硬币的数量是无限的) 【…

蓝桥杯欲伸手CTF?有多远爬多远

注意&#xff1a;网络安全类比赛 或者说 CTF 参赛不会需要任何费用 只有国赛/省赛有可能会收取一定运维费用 其他比赛都不会收费 望周知。 先来看个特离谱的事情 早上起床看到几位师傅的朋友圈一脸懵&#xff0c;再仔细一看&#xff0c;好嘛。。。。。。 先看看探姬的回复 接下…