一、为什么要使用数据库?
1.持久化(persistence):把数据保存到可掉电式存储设备中以供以后使用。
2.内存中存储数据使用低电压和高电压判断0和1,但如果断电就没有电压了,更何谈低电压和高电压,所以内存不太靠谱,数据一断电就没有了。
3.为了将数据持久化,我们需要一些存储介质,如关系型数据库,磁盘文件(.java ,.doc,.jpg等),XML数据文件中。
4.选择数据库而不选择其他类型的存储介质的原因:
(1)从横向的存储的数据的条目数上:如果是上亿的数据,存储在磁盘文件中,想要查找某一条数据需要的时间是非常大的;如果存储在数据库中,我们可以使用一些优化的方式,方便我们快速的查找到相关数据。
(2)从纵向上存储数据的丰富度:在数据库中,我们可以存放不同类型的数据,int型、浮点型等等,但如果在文件中,就不太好存放了。
二、数据库与数据库管理系统
1.数据库的相关概念
DB:数据库(Database)本质是一个文件系统,保存了一系列有组织的数据。指的是物理磁盘的文件。
DBMS:数据库管理系统(Database Management System)是一种操纵和管理数据库的大型软件,(MySql数据库是一个软件层面的概念),用于建立、使用和维护数据库,对数据库进行统一管理和控制。用户通过数据库管理系统访问数据库中表内的数据。
SQL:结构化查询语言(Structured Query Lanaguage)专门用来与数据库通信的语言。
2.数据库与数据库管理系统的关系
数据库管理系统打开数据库,类似于使用Word或WPS打开“.doc”文件。
3.常见的数据库管理系统
目前互联网上常见的数据库管理软件有:Oracle、MySQL、Microsoft SQLServer、PostgreSQL、MongoDB、Redis、IBM Db2、Elasticsearch、SQLite、Cassandra等。(查看数据库最新排名:https://db-engines.com/en/ranking)
1.Oracle
Oracle是第一个商用的RDBMS(关系型数据库管理系统)。
2.SQL Server
SQL Server是微软开发的大型商业数据库。
3.DB2
是IBM公司的数据库产品,收费。常应用在银行系统中。
4.PostgreSQL
PostgreSQL的稳定性极强,最符合SQL标准,开放源码,具备商业级DBMS质量。
5.SQLite
嵌入式的小型数据库,应用在手机端。
6.informix
IBM公司出品,取自information和Unix的结合,它是第一个被移植到Linux上的商业数据库产品。仅运行与unix/linux平台,命令行操作。
三、MySQL介绍
1.概述
MySQL是一个开放源代码的关系型数据库管理系统。
MySQL是可以定制的,采用了GPL(GNU General Public License)协议,可以修改源码来开发自己的MySQL系统。
MySQL支持大型数据库,可以处理拥有上千万条记录的大型数据库,超过千万后,就需要分库分表了,单表2000w数据后,数据库查询性能会急剧下降。
2.Oracle vs MySQL
Oracle更适合大型跨国企业的使用,因为他们对费用不敏感,但是对性能要求以及安全性有更高的要求。
MySQL由于其体积小、速度快、总体拥有成本低,可处理上千万条记录的大型数据库,尤其是开放源码这一特点,使得很多互联网公司、中小型网站选择了MySQL作为网站数据库(Facebook,Twitter,You Tube,阿里巴巴/蚂蚁金服,去哪儿,美团外卖,腾讯)。