zoukankan      html  css  js  c++  java
  • MySQL 基础知识

    1. 基本数据类型

    1.1 数值类型

      数值类型的字段根据有符号、无符号可以表示不同范围的数值;

      建表语句中,数值类型后面括号内的数字表示该字段展示的位数,并不影响存储的数据;

      默认情况下数值类型表示的是有符号类型,若需要无符号额数值类型,可在数值类型后加 unsigned 修饰;

      

      

     1.2 字符串类型

      char    0-255字节  定长字符串

      varchar         0-65535字节    变长字符串

      text     0-65535字节    长文本数据

      blob    0-65535字节    二进制形式的长文本数据

      char:存储固定长度的字符,若存储的字符不足指定的长度,则用空格补齐,若超过指定的长度,则只截取指定长度的字符;

      varchar:需要1-2个字节记录字符串的实际长度;

    1.3 日期类型

      TIMESTAMP:把客户端插入的时间从当前时区转化为UTC(世界标准时间)进行存储。查询时,将其又转化为客户端当前时区进行返回。

      DATETIME:不做任何改变,基本上是原样输入和输出

    2. 存储引擎

    1、InnoDB存储引擎

    • 默认事务型引擎,最重要最广泛的存储引擎,性能非常优秀。

    • 数据存储在共享表空间,可以通过配置分开。也就是多个表和索引都存储在一个表空间中,可以通过配置文件改变此配置。

    • 对主键查询的性能高于其他类型的存储引擎。

    • 内部做了很多优化,从磁盘读取数据时会自动构建索引,插入数据时自动构建插入缓冲区

    • 通过一些机制和工具支持真正的热备份。

    • 支持崩溃后的安全恢复。

    • 支持行级锁

    • 支持外键

    2、MyISAM存储引擎

    • 拥有全文索引、压缩、空间函数。

    • 不支持事务和行级锁、不支持崩溃后的安全恢复。

    • 表存储在两个文件,MYD和MYI。

    • 设计简单,某些场景下性能很好,例如获取整个表有多少条数据,性能很高。

    • 全文索引不是很常用,不如使用外部的ElasticSearch或Lucene。

    3、其他表引擎
      Archive、Blackhole、CSV、Memory

    使用策略
      在大多数场景下建议使用InnoDB存储引擎。

    4、InnoDB和MyISAM的区别

    • InnoDB支持事务,MyISAM不支持;

    • InnoDB数据存储在共享表空间,MyISAM数据存储在文件中

    • InnoDB支持行级锁,MyISAM只支持表锁

    • InnoDB支持崩溃后的恢复,MyISAM不支持;

    • InnoDB支持外键,MyISAM不支持;

    • InnoDB不支持全文索引,MyISAM支持全文索引

    5innodb引擎的特性

    • 插入缓冲(insert buffer)

    • 二次写(double write)

    • 自适应哈希索引(ahi)

    • 预读(read ahead)

     

  • 相关阅读:
    Cgroup学习笔记
    基于dubbo框架下的RPC通讯协议性能测试
    More about dubbo
    基于nginx tomcat redis分布式web应用的session共享配置
    基于开源Dubbo分布式RPC服务框架的部署整合
    More about Tair (NoSql)
    MySql Replication配置
    Memcached、Redis OR Tair
    基于淘宝开源Tair分布式KV存储引擎的整合部署
    关于TbSchedule任务调度管理框架的整合部署
  • 原文地址:https://www.cnblogs.com/virgosnail/p/9650312.html
Copyright © 2011-2022 走看看