我们每天都在访问各种各样的站、APP,如微信、QQ、抖、今头条等,这些网站上都存在量的信息数据,这些信息数据都需要有地存储,一般这些数据都存储在哪呢?

一般这些数据都存储在数据库中。所以如果我们需要开发个站、app,数据库是我们必须掌握的技术,常的数据库有mysql、oracle、sqlserver、db2等。上介绍的个数据库,oracle性能排名第,服务也是相当到位的,但是收费也是常的,融公司对数据库稳定性要求较,般会选择oracle。mysql是免费的,其他个前暂时收费的,mysql在互联公司使率也是排名第。资料也常完善,社区也常活跃,所以我们主要学习mysql。

打开网易新闻 查看更多图片

DB:数据库,存储数据的容器。

DBMS:数据库管理系统,又称为数据库软件或数据库产品,于创建或管理DB。

SQL:结构化查询语,于和数据库通信的语,不是某个数据库软件持有的,是乎所有的主流数据库软件通的语。中国之间交流需要说汉语,和美国之间交流需要说英语,和数据库沟通需要说SQL语。

数据库存储数据的些特点

数据存放在表中,然后表存放在数据库中

个库中可以有多张表,每张表具有唯的名称(表名)来标识

表中有个或多个列,列又称为“字段”,相当于java中的“属性”

表中每数据,相当于java中的“对象”

选不选:般情况下选择可以正确存储数据的最数据类型,越的数据类型通常更快,占磁盘,内存和CPU缓存更。

简单就好:简单的数据类型的操作通常需要更少的CPU周期,例如:整型字符操作代价要得多,因为字符集和校对规则(排序规则)使字符整型较更加复杂。

尽量避免NULL:尽量制定列为NOT NULL,除真的需要NULL类型的值,有NULL的列值会使得索引、索引统计和值较更加复杂。

浮点类型的建议统选择decimal

记录时间的建议使int或者bigint类型,将时间转换为时间戳格式,如将时间转换为秒、毫秒,进存储,便索引

打开网易新闻 查看更多图片

mysql是如何来识别个户的呢?

mysql为了安全性考虑,采 主机名+户名 来判断个户的份,因为在互联中很难通过户名来判断个户的份,但是我们可以通过ip或者主机名判断台机器,某个户通过这个机器过来的,我们可以识别为个户,所以mysql中采户名+主机名来识别户的份。当个户对mysql发送指令的时候,mysql就是通过户名和来源(主机)来断定户的权限。

Mysql权限验证分为2个阶段:

(1)阶段1:连接数据库,此时mysql会根据你的户名及你的来源(ip或者主机名称)判断是否有权限连接

(2)阶段2:对mysql服务器发起请求操作,如create table、select、delete、update、create index等操作,此时mysql会判断你是否有权限操作这些指令

学习索引,主要是写出更快的sql,当我们写sql的时候,需要明确的知道sql为什么会索引?为什么有些sql不索引?sql会那些索引,为什么会这么?我们需要了解其原理,了解内部具体过程,这样使起来才能更顺,才可以写出更效的sql。

Mysql中索引分为聚集索引(主键索引)和聚集索引

聚集索引(主键索引)

每个表定会有个聚集索引,整个表的数据存储以b+树的式存在件中,b+树叶节点中的key为主键值,data为完整记录的信息;叶节点存储主键的值。

通过聚集索引检索数据只需要按照b+树的搜索过程,即可以检索到对应的记录。

聚集索引

每个表可以有多个聚集索引,b+树结构,叶节点的key为索引字段字段的值,data为主键的值;叶节点只存储索引字段的值。

通过聚集索引检索记录的时候,需要2次操作,先在聚集索引中检索出主键,然后再到聚集索引中检索出主键对应的记录,该过程聚集索引多了次操作。

打开网易新闻 查看更多图片

整理的1份MySQL学习笔记非常全面且详细,覆盖了 MySQL 基础学习的方方面面,非常适合初学者入门!这份MySQL学习笔记一共了578页,现在分享发给大家。关注公众号:程序员追风,回复 012 免费获取这份MySQL学习笔记

这份MySQL学习笔记也按目录进行编排,每一章下面都有更具体的内容: