Mysql的简介和选择
文章目录
- 前言
- 一、为什么要使用数据库
- 数据库的概念
- 为什么要使用数据库
- 二、程序员为什么要学习数据库
- 三、数据库的选择
- 主流数据库简介
- 使用MySQL的优势
- 版本选择
- 四、Windows 平台下安装与配置MySQL
- 启动MySQL 服务
- 控制台登录MySQL命令
- 五、Linux 平台下安装与配置MySQL
- 总结
前言
程序员Jack还是在在校学习期间,就听高年级的大哥忠告,“小伙子,搞编程,想要成为最牛逼的程序员,一定要学好C/C++语言和数据结构及算法”,Jack谨记了这句忠告,因为这位高年级的哥们还没毕业就已经被BAT公司预定,在学校那是风光无限,得到了很多高年级美女学姐的青睐。
经过一段时间的刻苦学习,Jack终于把C++ 和数据结构还有算法学得有点模样了,不自觉就进入初级装逼模式,在同学面前那是指手画脚,趾高气昂。。。。
这种状态一直持续到实习期间,Jack 进入一家小有名气的游戏开发公司实习,被安排到一个棋牌游戏的项目组。项目组的项目经理颇为认同新来的Jack 同学(因为面试时问到的C++和数据结构相关的试题,只有Jack 力压群雄,达到了项目经理的要求,甚至有几年工作经验的程序员都搞不定的A*算法,Jack也是对答如流!),并没有给他安排一些意义不大的杂活给他干,而是编制为开发团队的正式一员,享受正式员工的待遇!此时的Jack 意气风发,代码撸的更加卖力了,因此也很快融入了开发团队中。。。
有一天,项目组的小组长给Jack分配了一个新的任务,让Jack 实现用户登陆模块,具体需求如下:
- 游戏玩家访问游戏客户端,通过客户端界面输入用户名和密码
- 在游戏玩家点击”确认”后,客户端连接至数据库服务器对用户名和密码进行确认,
如果验证成功,则 玩家可以进入大厅,如果失败,则不允许进入!
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
... ...
但是,随着应用程序的功能越来越复杂,数据量越来越大,如何管理这些数据就成了大问题:
- 读写文件并解析出数据需要大量重复代码;
- 从成千上万的数据中快速查询出指定数据需要复杂的逻辑。
- 数据缺乏安全感
如果每个应用程序都各自写自己的读写数据的代码,一方面效率低,容易出错,另一方面,每个应用程序访问数据的接口都不相同,数据难以复用。
所以,数据库作为一种专门管理数据的软件就出现了。应用程序不需要自己管理数据,而是通过数据库软件提供的接口来读写数据。至于数据本身如何存储到文件,那是数据库软件的事情,应用程序自己并不关心:
这样一来,编写应用程序的时候,数据读写的功能就被大大地简化了。
二、程序员为什么要学习数据库
- 几乎任何一个企业级应用,都要用到数据库。
- 无论开发、测试、运维还是架构师,数据库都是加分神器!
- 小的软件企业分工不明确,全能型人才能得到更多的机会(就业和提升)
- 外包和自由程序员必备
三、数据库的选择
主流数据库简介
当今市面上的数据库产品众多,每种数据库都有自己的优势和缺点,或出于数据库的性能和易用性考虑,或出于商用和开源考虑,如何选择自己合适的数据库产品,成为重中之重!
主要的数据库产品有如下几种:
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,另外特殊情况特殊处理!
相关文章:

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

3D视觉之深度相机方案
随着机器视觉,自动驾驶等颠覆性的技术逐步发展,采用 3D 相机进行物体识别,行为识别,场景 建模的相关应用越来越多,可以说 3D 相机就是终端和机器人的眼睛。 3D 相机 3D 相机又称之为深度相机,顾名思义&…...

Mysql列的完整性约束详解(主键约束)
文章目录 前言一、设置表字段的主键约束(PRIMARY KEY,PK) 1.单字段主键2.多字段主键总结 前言 完整性约束条件是对字段进行限制,要求用户对该属性进行的操作符合特定的要求。如果不满足完整性约束条件,数据库系统将不再…...

母婴市场竞争激烈,如何通过软文营销脱颖而出
如今,随着宝宝数量增加以及人们对孩子的重视程度的增加,母婴市场愈发火爆。然而,母婴行业的竞争也越来越激烈,企业需要不断开拓新市场才能生存。在这样的情况下,软文营销成为了母婴企业拓展市场的一种有效方式。 首先&…...

java--线程池
目录 1.线程池概 2 为什么要使用线程池 1创建线程问题 2解决上面两个问题思路: 3线程池的好处 4线程池适合应用场景 3 线程池的构造函数参数 1.corePoolSize int 线程池核心线程大小 2.maximumPoolSize int 线程池最大线程数量 3.keepAliveTime long 空闲…...

asp.net765数码手机配件租赁系统
员工部分功能 1.员工登录,员工通过自己的账号和密码登录到系统中来,对租赁信息进行管理 2.配件查询,员工可以查询系统内的配件信息 3.客户信息管理,员工可以管理和店内有业务往来的客户信息 4.配件租赁,员工可以操作用…...

有关态势感知(SA)的卷积思考
卷积是一种数学运算,其本质是将两个函数进行操作,其中一个函数是被称为卷积核或滤波器的小型矩阵,它在另一个函数上滑动并产生新的输出。在计算机视觉中,卷积通常用于图像处理和特征提取,它可以通过滤波器对输入图像进…...

Docker快速部署springboot项目
有很多开发者在项目部署过程中都会遇到一些繁琐的问题,比如打包、上传、部署等。而使用Docker可以非常方便地解决这些问题。在本文中,将详细讲解如何使用IDEA中的docker打包插件,将代码打包并直接发布到服务器上。这样,我们就可以…...

Linux命令rsync增量同步目录下的文件
业务场景描述 最近遇到一个问题,需要编写相应的Linux命令,增量同步/var/mysql里的所有文件到另外一个目录/opt/mysql,但是里面相关的日志文件xx.log是不同步的,这个场景,可以使用rsync来实现 什么是rsync命令&#x…...
项目管理---(1)项目管理一般知识
一、项目管理一般知识 1.1 项目的一般知识 1.1.1 项目的定义: 项目是为创造独特的产品、服务或成果而进行的临时性工作。 1.1.2 项目的目标: 项目的目标包括成果性目标和约束性目标。 成果性目标:指通过项目开发出满足客户要求的产品、系…...
超过50多个热门的免费可用 API 分享
今天吃什么:随机返回一顿美味食物,解决你今天吃什么的难题。万年历:获取公历日期对应的农历、农历节日节气、天干地支纪年纪月纪日、生肖属相、宜忌、星座等信息。支持查询未来15天。笑话大全:各种最新、最及时的幽默、搞笑段子&a…...

记一次死锁问题
最近在做一个需求,碰到了死锁的问题,记录下解决问题的过程 背景 这个需求要改动一个接口,我这边称为A接口,原先的逻辑是A接口内部会调用c方法,c方法是一个dubbo方法, 现在需要再A接口里添加调用B方法&…...

Bean 作⽤域和⽣命周期
目录 1.lombok 1.1 1.添加依赖:(pom.xml) 1.2 在实体类上使用lombok提供的注解 1.3 安装插件 2. Bean 的 6 种作⽤域(Scope) 2.1 singleton(默认模式) 2.2 prototype(原型模式…...
SVN通过备份、过滤、再导入的方式彻底删除废弃目录
文章目录 前言简要步骤操作示例总结 前言 SVN占用的空间随着项目版本迭代越来越大,因为保存了历史记录中的各个版本,所以即使本地把废弃的目录删掉提交,也不会释放出多余的空间,大概率因为操作删除增加了一个版本号,使…...
golang支持优雅关闭和core错误记录
#经过测试,不能使用 ENTRYPOINT ["/modapi/modapi", "1>> /dev/null","2>> ./logs/stderr.log"],原因是虽然这种方案可以 #保证modapi命令为1号程序,能够接收到os的signal信号。但是如果程序core了…...
Basics of Container Isolation 容器隔离的实现原理
目录 容器隔离的实现原理 1. 使用cgroups实现资源隔离 自定义一个cgroup 设置进程的内存使用 启动一个docker 容器,观察cgroup的创建情况 2. 使用Namespaces进行资源分区 namespace继承关系引发的问题 3. 结合来使用Namespaces 和chroot 4. 结论 参考文档…...
EBS R12.1 注册客户化应用的步骤
创建客户化应用目录 登录成 applxxx 用户 -- applxxx 改成所需用户名 # 以标准INV模块作为客户化应用目录的模板 cd $APPL_TOP mkdir -p cust cp -r inv cust/template cd cust # 删除template 目录下的文件,只保留目录结构 cd $APPL_TOP/cust for rm_list in …...

算法记录 | Day38 动态规划
对于动态规划问题,将拆解为如下五步曲 确定dp数组(dp table)以及下标的含义确定递推公式dp数组如何初始化确定遍历顺序举例推导dp数组 509.斐波那契数 思路: 确定dp数组(dp table)以及下标的含义&#x…...

PMP项目管理-[第六章]进度管理
进度管理知识体系: 规划进度管理: 定义活动: 排列活动顺序: 估算活动持续时间: 制定进度计划: 6.1 规划进度管理 定义:为规划、编制、管理、执行和控制项目进度而制定政策、程序和文档的过程 作…...
Python变量
一、变量的定义 变量名的命名规范:变量名是标识符的一种,变量名不能随便起,要遵守 Python 标识符命名规范。 ## 常用的命名规范有以下几种: 1. 变量名为单个单词的话全部小写 name "张三" 2. 多个单词组成的话&#…...

label-studio的使用教程(导入本地路径)
文章目录 1. 准备环境2. 脚本启动2.1 Windows2.2 Linux 3. 安装label-studio机器学习后端3.1 pip安装(推荐)3.2 GitHub仓库安装 4. 后端配置4.1 yolo环境4.2 引入后端模型4.3 修改脚本4.4 启动后端 5. 标注工程5.1 创建工程5.2 配置图片路径5.3 配置工程类型标签5.4 配置模型5.…...

中南大学无人机智能体的全面评估!BEDI:用于评估无人机上具身智能体的综合性基准测试
作者:Mingning Guo, Mengwei Wu, Jiarun He, Shaoxian Li, Haifeng Li, Chao Tao单位:中南大学地球科学与信息物理学院论文标题:BEDI: A Comprehensive Benchmark for Evaluating Embodied Agents on UAVs论文链接:https://arxiv.…...

23-Oracle 23 ai 区块链表(Blockchain Table)
小伙伴有没有在金融强合规的领域中遇见,必须要保持数据不可变,管理员都无法修改和留痕的要求。比如医疗的电子病历中,影像检查检验结果不可篡改行的,药品追溯过程中数据只可插入无法删除的特性需求;登录日志、修改日志…...

IT供电系统绝缘监测及故障定位解决方案
随着新能源的快速发展,光伏电站、储能系统及充电设备已广泛应用于现代能源网络。在光伏领域,IT供电系统凭借其持续供电性好、安全性高等优势成为光伏首选,但在长期运行中,例如老化、潮湿、隐裂、机械损伤等问题会影响光伏板绝缘层…...

vue3+vite项目中使用.env文件环境变量方法
vue3vite项目中使用.env文件环境变量方法 .env文件作用命名规则常用的配置项示例使用方法注意事项在vite.config.js文件中读取环境变量方法 .env文件作用 .env 文件用于定义环境变量,这些变量可以在项目中通过 import.meta.env 进行访问。Vite 会自动加载这些环境变…...
LeetCode - 199. 二叉树的右视图
题目 199. 二叉树的右视图 - 力扣(LeetCode) 思路 右视图是指从树的右侧看,对于每一层,只能看到该层最右边的节点。实现思路是: 使用深度优先搜索(DFS)按照"根-右-左"的顺序遍历树记录每个节点的深度对于…...

中医有效性探讨
文章目录 西医是如何发展到以生物化学为药理基础的现代医学?传统医学奠基期(远古 - 17 世纪)近代医学转型期(17 世纪 - 19 世纪末)现代医学成熟期(20世纪至今) 中医的源远流长和一脉相承远古至…...
C++.OpenGL (14/64)多光源(Multiple Lights)
多光源(Multiple Lights) 多光源渲染技术概览 #mermaid-svg-3L5e5gGn76TNh7Lq {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-3L5e5gGn76TNh7Lq .error-icon{fill:#552222;}#mermaid-svg-3L5e5gGn76TNh7Lq .erro…...

iview框架主题色的应用
1.下载 less要使用3.0.0以下的版本 npm install less2.7.3 npm install less-loader4.0.52./src/config/theme.js文件 module.exports {yellow: {theme-color: #FDCE04},blue: {theme-color: #547CE7} }在sass中使用theme配置的颜色主题,无需引入,直接可…...
基于鸿蒙(HarmonyOS5)的打车小程序
1. 开发环境准备 安装DevEco Studio (鸿蒙官方IDE)配置HarmonyOS SDK申请开发者账号和必要的API密钥 2. 项目结构设计 ├── entry │ ├── src │ │ ├── main │ │ │ ├── ets │ │ │ │ ├── pages │ │ │ │ │ ├── H…...