前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MySQL学习18-知识重点

MySQL学习18-知识重点

作者头像
皮大大
发布2021-03-02 15:16:16
4370
发布2021-03-02 15:16:16
举报
文章被收录于专栏:机器学习/数据可视化

MySQL知识点进行了一个小结

引擎

MyISAM
  • 不支持事务
  • 支持表级锁
  • 不支持MVCC
  • 支持全文索引
  • 不支持外键
  • 堆表结构
InnoDB
  • 支持事务
  • 支持行级锁
  • 支持MVCC
  • 支持外键
  • 不支持全文索引
  • 索引组织表结构
Memory
  • 内存式引擎
  • 临时存放数据,数据量小
  • 安全性低
Archive
  • 事务是非安全的
  • 支持高并发
  • 适合存储归档数据
  • 对于select和insert语句,比较适合

事务

ACID
  • 原子性Atomicity
  • 一致性Consistency
  • 隔离性 Isolation
    • 未提交读(Read Uncommitted)
    • 提交读(Read Committed)
    • 可重复读(Repeated Read),默认
    • 串行读(Serializable)
  • 持久性Durability
术语
  • start transaction
  • end transaction
  • commit transaction
  • rollback transaction

索引index

分类
  • index
    • 普通索引,可以重复
  • unique
    • 唯一索引,索引列的值必须唯一,可以为空
  • 组合索引
    • 多个字段上创建的索引
  • primary key
    • 主键索引,一个表只能有一个,且不能为空
  • 全文索引fulltext
    • MyISAM 支持
    • InnoDB5.6以下不支持
特点
  • 提高查询速度
  • 创建和维护耗费资源和时间
  • 影响插入的速度
效果
  • show status like '%handler_read%'越大越好

语句

DDL
  • 数据定义语言(create drop)
DML
  • 数据操作语句(insert update delete)
DQL
  • 数据查询语句(select )
DCL
  • 数据控制语句,进行授权和权限回收(grant revoke)
TPL
  • 数据事务语句(commit collback savapoint)

语句优化

  • 避免select *,将字段列出来
  • 使用连接(join)来代替子查询
  • 使用limit对查询结果的记录进行限定
  • 用 exists 代替 in
  • where
    • 用Where子句替换HAVING 子句
    • 不要在 where 子句中的“=”左边进行函数等
    • 避免在where 子句中对字段进行 null 值判断
    • 避免在 where 子句中使用!=或<>操作符

三范式

第一范式
  • 对属性的原子性约束
  • 要求字段具有原子性,不可再分解
第二范式
  • 满足范式1
  • 非主键字段不能出现部分依赖主键
第三范式
  • 满足范式 2
  • 不能出现传递依赖

表结构优化

  • 建表的时候设置主键
  • 选择正确的存储引擎
  • 使用简单的数据类型,整型比字符处理开销更小
  • 使用合理的字段属性长度,固定长度的表会更快
  • 使用enum、char而不是varchar
  • 给频繁使用和查询的字段建立合适的索引
  • 尽可能使用not null定义字段

varchar和char

char
  • 声明字符长度,0-255
  • 当char值被存储时,会用空格填充到指定的长度
  • char(n):每个值占据n个字节
varchar
  • 变长,多余的截掉
  • 字符长度 0-65535
  • varchar(n):每个值占据n+1个字节,1个字节用来记录长度
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-10-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 引擎
    • MyISAM
      • InnoDB
        • Memory
          • Archive
          • 事务
            • ACID
              • 术语
              • 索引index
                • 分类
                  • 特点
                    • 效果
                    • 语句
                      • DDL
                        • DML
                          • DQL
                            • DCL
                              • TPL
                              • 语句优化
                              • 三范式
                                • 第一范式
                                  • 第二范式
                                    • 第三范式
                                    • 表结构优化
                                    • varchar和char
                                      • char
                                        • varchar
                                        相关产品与服务
                                        云数据库 SQL Server
                                        腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
                                        领券
                                        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档