• MySQL基础入门学习【14】存储引擎


    查看数据表的创建命令:

    【存储引擎】: MySQL可以将数据以不同的奇数存储在文件(内存)中,这种技术就成为存储引擎

            每一种存储引擎都使用了不同的存储机制、索引技巧、锁定水平,最终提供广泛且不同的功能

                在关系型数据库当中,数据的存储是以表的形式来实现的。所以存储引擎也可以称为表类型

           【MySQL支持的存储引擎】:

                        MyISAM,

                        InnoDB,

                        Memory,

                        CSV,

                        Archive

    【并发处理】: 

          并发控制: 当多个连接对记录进行操作时保证数据的一致性和完整性的技术。

          例如两个用户同时登陆,其中一个要对某一行记录删除,而另一个用户恰好要读取这一行记录,

            结果可能是正在读取信息的用户报错而退出,也可能得到一条与实际记录不符的信息。

            解决这类经典问题的方法就是使用并发控制: 在处理并发读或并发写时,系统会使用一套锁系统来解决这个问题。

            这个锁系统由两类【锁】来组成:

                      【共享锁(读锁)】: 在同一时间段内,多个用户可以读取同一个资源,读取过程中数据不会发生任何变化(相互不做干扰);

                      【排他锁(写锁)】: 在任何时候只能有一个用户写入资源,当进行写锁时会阻塞其他的读锁或者写锁操作(出于安全策略的考虑)。

                        【锁的颗粒】: 锁定时的单位。我们其实只需要对修改的数据精确加锁即可,而无需对所有资源均加锁。加锁只加最对的,而不是加最大的。

                              加锁会增加系统的开销: 我们通过锁策略在锁开销与数据安全之间寻求一种平衡

                                                            【表锁】:是一种开销最小的锁策略。 当用户针对某数据表进行操作时,用户即获得了对该表的写锁权限,写锁会禁止其他用户的读、写操作。这张表只能有一个锁。

                              【行锁】:是一种开销最大的锁策略,是支持最大并发操作处理的情况。这张表中有多少条记录就可能对每一个记录都有一个锁

      

    【事务处理】:【事务】是数据库区别于文件系统的重要特征之一, 用于保证数据库的完整性。

              例如,某个用户要通过网银给别人转200元,则操作如下:  

                1. 从当前账户减掉200元(账户余额大于等于200元);

                2. 在对方账户增加200元。

                   两个过程应该作为一个整体出现,无论哪个过程出现了问题,都应该恢复到数据的原始状态。

           【事务的特性——ACID】:

                   1. 原子性(Atomicity)

                   2. 一致性(Consistency)

                   3. 隔离性(Isolation)

                   4. 持久性 (Durability)

          

    【外键和索引】: 【外键】是保证数据一致性的策略 (see http://www.cnblogs.com/jade-91/p/8672669.html)

               【索引】是对数据表中一列或多列的值进行排序的一种结构,使用索引可以快速地访问数据表当中的特定信息,是进行记录快速定位的一种方法(类比书的目录)。

                可分为普通索引、唯一索引、全文索引、btree索引、hash索引......         

             

    【各个存储引擎特点】

    特点 MyISAM InnoDB Memory Archive
    存储限制 256TB 64TB 有 (由内存大小决定)
    事务安全 - 支持 - -
    支持索引 支持 支持 支持  
    锁颗粒 表锁 行锁 表锁 行锁
    数据压缩 支持 - - 支持
    支持外键 - 支持 -

     

                      此外, CSV是由逗号分隔的存储引擎,会在数据库的子目录中为每一表创建一个.csv文件(一种普通的文本文件),每一个数据行占用一个文本行,不支持索引

                    BlackHole: 黑洞引擎,写入的数据都会消失,一般用于做数据复制的中继。

               一般最常用的存储引擎是MyISAM 和 InnoDB这两种存储引擎。

               其中,MyISAM适用于事务的处理不多的情况;

                  InnoDB适用于事务处理比较多,需要有外键支持的情况。

               大牛们也可以对数据引擎进行扩展。

     

    【设置存储引擎】

        【修改存储引擎的方法】: 

            方法一:通过修改MySQL配置文件实现: default-storage-engine = engine_name 

            方法二:通过创建数据表命令实现:

                CREATE TABLE table_name (

                ...

                ...

                ) ENGINE = engine_name;

                

                

            方法三:通过修改数据表命令实现

                ALTER TABLE table_name ENGINE [=] engine_name;

     

                

                  

     

     [参考链接]   https://www.imooc.com/learn/122 

     

  • 相关阅读:
    inline-block 文字与图片不对齐
    js去除数组重复项
    react2
    kfaka windows安装
    sigar 监控服务器硬件信息
    Disruptor
    Servlet 3特性:异步Servlet
    jvmtop 监控
    eclipse如何debug调试jdk源码
    一致性hash算法
  • 原文地址:https://www.cnblogs.com/jade-91/p/8688266.html
Copyright © 2020-2023  润新知