MySQL存储引擎笔记存储引擎概述插件式存储引擎是MySQL的重要特性之一,用户可以根据应用的需要选择如何存储和索引数据、是否使用事物等 www.2cto.com 特点MyISAMInnoDBMemory事物安全支持锁机制表锁行锁表锁索引类型B树索引全文索引B树索引集群索引B树索引哈

MySQL存储引擎笔记

存储引擎概述

插件式存储引擎是MySQL的重要特性之一,用户可以根据应用的需要选择如何存储和索引数据、是否使用事物等  www.2cto.com

特点

MyISAM

InnoDB

Memory

事物安全

支持

锁机制

表锁

行锁

表锁

索引类型

B树索引

全文索引

B树索引

集群索引

B树索引

哈希索引

数据缓存

支持

支持

索引缓存

支持

支持

支持

支持外键

www.2cto.com

支持

存储引擎特性

MyISAM(ISAM → Indexed Sequential Access Method )引擎

a)         MyISAM

劣势:不支持事物、不支持外键

优势:访问速度快

适用:对事物完整性无要求、并发性不高或以select和insert操作为主的应用(web、数据仓库等)

b)        MyISAMy表存储格式

静态表:存储迅速、容易缓存、故障恢复容易(注:数据末尾的空格会被自动剔除)

动态表:空间占用小,删除和更新易导致碎片化(注:optimize table或myisamchk -r碎片整理)

压缩表:每条记录单独压缩、访问开支小

InnoDB引擎

a)       InnoDB

劣势:写操作效率差、占用更多磁盘(保留数据和索引)

优势:事物安全、支持外键

适用:对事物完整性和并发下得一致性要求高并且有较多更新、删除操作(InnoDB有效降低了删除更新导致的表锁定)的应用(计费、财务系统等)

b)      自动增长序列

1.       自动增长列必须是索引。

2.       如果是组合索引,则自动增长列必须是第一列(MyISAMy可为其他列,MyISAMy是按照前几列排序后递增的)

例:

create table autoincrease_demo_myisam

(t1 smallint not null auto_increment,

t2 smallint not null,  www.2cto.com

name varchar(20),

index(t2,t1)

)engine =myisam;

依次插入以下数据

t1

2

2

2

3

3

2

2

2

2

2

3

3

2

2

t2

2

3

2

3

4

2

3

2

3

2

3

4

2

3

查看数据库的中数据:select * from autoincrease_demo_myisam order by t2,t1;

+----+----+------+

| t1 | t2 | name |

+----+----+------+

|  1 |  2 | 2    |

|  2 |  2 | 3    |

|  3 |  2 | 2    |

|  4 |  2 | 2    |

|  5 |  2 | 3    |

|  6 |  2 | 2    |

|  7 |  2 | 3    |

|  8 |  2 | 2    |

|  9 |  2 | 2    |

| 10 |  2 | 3    |

|  1 |  3 | 3    |

|  2 |  3 | 4    |

|  3 |  3 | 3    |

|  4 |  3 | 4    |

+----+----+------+

c)       外键约束

MySQL支持外键的存储引擎只有InnoDB。在创建外键的时候,要求父表必须有对应的索引,字表在创建外键的时候也会创建对应的索引。外键关联的操作主要有restrict、cascade、set null、no action.  www.2cto.com

restrict、no action:在子表有关联记录的情况父表不能更新。

cascade:父表在更新或者删除时,更新或者删除子表对应记录。

set null:父表在更新或者删除时,字表对应的字段被set null。

d)      存储方式

共享表空间存储:所有的数据和索引保存在innodb_data_home_dir和innodb_data_file_path定义的表空间中,可以是多个文件。

独立表空间存储:每个表的数据和索引单独保存在自己的表空间中。(单表备份和恢复较方便)

Memory引擎

a)       优点:Memory存储引擎使用存储在内存中的内容创建表,默认使用HASH索引。表访问非常快(在启动服务的时候可以使用--init-file选项将insert into ,select 或load data infile这样的语句放入这个文件,就可以再服务启动时从持久稳定的数据源装载表。)

b)      缺点:表大小有限制,服务关闭表中的数据就会丢失

c)       适用:内容变化不频繁,作为统计操作的中间结果表。

作者 xinhanggebuguake

cms文章 mysql存储_MySQL存储引擎笔记相关推荐

  1. ci mysql 事务_MySQL事务-学习笔记

    MySQL事务-学习笔记 MySQL事务 事务的意义 案例:银行转账过程 A向B转账500,A原来有1000,B有500. 分析: SQL处理过程: A 减少 500 B 增加 500 以上两点必须同 ...

  2. Mysql技术内幕innodb引擎笔记

    第2章 InnoDB存储引擎 2.3 InnoDB体系架构 InnoDB存储引擎有多个内存块,可以认为这些内存块组成了一个大的内存池,负责如下工作: 维护所有进程/线程需要访问的多个内部数据结构. 缓 ...

  3. cms文章 mysql存储,帝国CMS万能标签调用随机文章的方法

    方法一: 按表随机调用: [ecmsinfo]"select * from phome_ecms_news order by rand() desc limit 6 ",6,18, ...

  4. mysql微信昵称存储_mysql存储昵称带有emoji处理方案

    1.背景 近期做了一个有关微信公众号的开发,系统需要存储用户的openId和昵称等基本信息.然而很多新潮儿,微信昵称会选择使用各种emoji表情,所以一不留神,作为大叔的我,当初设计表结构的时候就没考 ...

  5. inception mysql 使用_mysql 审核引擎 goInception 的基本使用

    MySQL 数据库 mysql 审核引擎 goInception 的基本使用 官网地址 github.com 安装 git clone https://github.com/hanchuanchuan ...

  6. mysql黑洞_MySQL黑洞引擎的使用场景解释

    MySQL有一个出类拔萃的引擎名叫BlackHole, 又名黑洞. 好多人说这个是鸡肋, 一点用处也没有. 熟读手册,会发现以下几点: A. 检查DUMP 文件是否完整. 你可以用MYSQLDUMP ...

  7. mysql维护计划_MySQL服务维护笔记

    服务的启动和停止 1.复制缺省的mysql/var/mysql到 /data/app_1/目录下, 2.MySQLD的启动脚本:start_mysql.sh #!/bin/sh rundir=`dir ...

  8. 燕十八 mysql优化_MySQL性能优化笔记整理

    多列索引上,索引发挥作用,需要满足左前缀要求. 以 index(a,b,c) 为例, --------------------------------------------------------- ...

  9. mysql自行车_mysql的一些笔记

    --single-transaction     mysqldump的时候,不锁表 –no-data   仅备份结构 备份MySQL数据库某个(些)表 mysqldump -hhostname -uu ...

最新文章

  1. 剑指offer5 从尾到头打印链表
  2. 将.protobuf文件转成.cs文件方法
  3. 如何通过对方IP地址查对方的MAC
  4. linux下openldap版本查询,用openldap进行linux认证
  5. export和export default的区别 1
  6. 代写python作业费用标准_代做159.272作业、代写Programming Paradigms作业、代做Python实验作业、代写Java/c++编程作业代写Database|代做R...
  7. Minimum Size Subarray Sum (二分)
  8. 通过Shiny app实现疫苗预防疾病的过程
  9. java前端开发自动生成器_一个简单实用的java代码生成器
  10. CAPL中的键值对(hash)数据类型
  11. QTTabBar 使用教程:用浏览器的方式管理 Windows 资源管理器
  12. 项目过程管理(五)需求文档
  13. Win:从 Microsoft官方网站下载官方正版ISO镜像文件(以Windows10为例,图文教程)
  14. 基于BTN7971芯片得H桥驱动
  15. window 开发hadoop
  16. 用VC++6.0制作简易浏览器
  17. FFMEPG avs2 解码支持
  18. 基于python的数据爬取与分析_基于Python的网站数据爬取与分析的技术实现策略
  19. 【Android】Android studio做一个简单的图片浏览器
  20. 树莓派实现简单的人脸识别

热门文章

  1. 遍历QListWidget的item
  2. ArcEngine二次开发_03(鼠标在图层中选择要素进行高亮显示)
  3. Madagascar的自定义浮点型函数--取整函数
  4. AbstractSyntax Tree (AST)
  5. python创建类和类方法
  6. vue3 @/cli脚手架搭建项目
  7. javascript数组总结
  8. sqlserver 导入mysql,在项目中迁移MS SQLServer到Mysql数据库,实现MySQL数据库的快速整合...
  9. 基础计算机构,基础计算与设计
  10. OpenShift 4之访问权限分级授权