zoukankan      html  css  js  c++  java
  • 数据库基础三

    一、存储引擎

    存储引擎标志表的性质不一样,使用的特点不一样

    表中存储数据的格式就是存储引擎

    表的存储方式:表结构存在一个地方,数据存在另一个地方。

    表的零另一种存储方式:表结构存在硬盘了,数据存在内存里,断电消失,但是速度快。

     

    查看存储引擎命令

    show engines;

    创建表的时候指定 engine = '存储引擎'; 

     

    InnoDB(默认使用)

    内部数据产生了两种表,一张是frame表结构,另一张是data表

    mysql5.6 默认的存储引擎

    事务:操作一段代码有一定的相关性,开启事务,若失败了就会进行数据回滚,保证数据的安全

    处理事务的步骤

    ① 开启事务

    ② 更新A的数据

    ③ 更新B的数据

    ④ 关闭事务

    特点:事务没完成,会回滚;避免了数据不安全

     

    行级锁

    多个用户不能同时对同一个数据进行修改,可以同时修改同一张表,

    当频繁修改数据,就选用InnoDB引擎,只有InnoDB独有

     

    表级锁

    多个用户不能同时修改同一张表的数据只能查,myisam独有

     

    MyISAM

    内部数据产生了三张表,一张是frame表,一张是data表,一张是index索引表(有索引机制,查询速度加快)

    MyISAM不支持事务,也不支持外键,优势是访问速度快,但是表级锁限制了它在写、修改负载方面的性能,应用于只读的主的数据场景

    查询多,修改少的时候使用

     

     

    Memory 

    内部产生了一张frame表

    在内存中存储所有数据,应用于对非关键数据进行快速查找的场景。

    数据量小,并对服务器的内存有要求,因为断电消失,只能存一些短小的数据。

    用来记录每个任务的登陆状态,非重要的数据可以存放

     

    重启后无数据

     

     

    blackhole 黑洞

    内部产生了一张frame表

    不存储数据,往黑洞表插入数据会记录在日志binlog,进行分流数据

     

     

    二、Mysql 工作流程

    三、表

    所有的表头的列都称为字段,其他的每一行内容都称为一条记录

     

    四、数据类型

    ① 数值类型

    DECIMAL(能表示整数,但一般用来表示小数,需要精准记录数值的数字,底层以字符串存储) > DOUBLE(小数) > FLOAT(小数) 小数的精确度

    常用:INT、FLOAT、DECIMAL

    定义int类型时,有约束是没有一样

    定义int时,加上unsigned 表示创建有符号的int

     

    float、double、decimal 定义时需要两个参数(整体的位数,小数的位数)

     

     float(255,30),double(255,30),decimal(65,30)    三个数据类型的最大范围

     

    ② 日期时间类型

    DATE:年月日   用途:入职时间、离职时间、生日

    TIME:时分秒

    DATETIME:年月日时分秒,用途:日志系统

    TIMESTAMP:年月日时分秒(描述的范围小,1970-2038年),不允许为空,默认值是当前加入数据的时间,每修改数据后会更新为修改时间,描述不了的时间变成0000-00-00 00:00:00

     

    now()       mysql的当前时间

     

     值的格式

    '2018-9-26 12:20:10'
    '2018/9/26 12+20+10'
    '20180926122010'
    20180926122010

     

    ③ 字符串类型

     

    char 0-255字节

    定长字符串,存取速度快,但是浪费磁盘空间

    存储方式:用空格补齐位数,查询时会默认给空格去掉

    场景:数据的长度变化小,手机号、身份证号、学号;

          频繁存储、对效率的要求高,存储短数据

               

    varchar 0-65535 字节变长字符串

    变长,节省磁盘空间,但是存取速度相对慢

    存储方式:在字符串的前面会加一个长度标识,存储的位数是原来字符串位数+1;查询时原来有空格会保留

    场景:数据长度的变化大,name、描述信息

         对效率要求相对小,存储相对长的数据

     

    concat() 拼接

     

     

    ④ ENUM和SET类型 (存储的类型是字符串)

     enum 只允许从值集合中选取单个值,而不能取多个值

    用途:单选,英航卡,性别

     

    set和enum相似,一个字符串对象,允许几个中任意选择1各或者多个进行组合

    set会提供去重功能

    用途:多选,兴趣爱好;

  • 相关阅读:
    JQuery实现数组移除指定元素
    美团酒旅面经
    搜狗一面
    360面经
    头条面经
    搜狐笔试题
    kolakoski序列
    函数的节流
    隐藏元素的几种方法
    移动端适配与响应式布局
  • 原文地址:https://www.cnblogs.com/st-st/p/9724381.html
Copyright © 2011-2022 走看看