cms文章 mysql存储_MYSQL 浅谈MyISAM 存储引擎

本文介绍了MySQL中的MyISAM存储引擎,重点讨论了其不支持事务的特性,以及其数据文件(.MYD)、索引文件(.MYI)和结构文件(.FRM)的存储结构。MyISAM在读取数据时允许并发的读锁,但在写入时会对整个表加锁。此外,还提到了列索引、延迟更新索引和压缩表等功能。
摘要由CSDN通过智能技术生成

思维导图

3b64f7c805b843f5194ba4b53acb119e.png

介绍

mysql中用的最多存储引擎就是innodb和myisam。做为Mysql的默认存储引擎,myisam值得我们学习一下,以下是我对《高性能MYSQL》书中提到的myisam的理解,请大家多多指教。

特点

> 不支持事务

证明如下:

>> 表记录:t2表的engine是myisam。

094685ded0ed9493e5995735a75f87d6.png

>> 操作

2befa1b95defe2722980f1312631471f.png

注意:如果你在数据库进行事务操作,但是事务无法成功,你就要看你的表引擎了,看这种引擎是否支持事务。

>> 下面请看innodb中的事务操作

8bdb97fc23b689a93d8de300c0b88908.png

> 存储结构:数据文件(.MYD),索引文件(.MYI)和结构文件(.frm)

>> 特点:可以在不同服务器上拷贝数据文件和索引文件。

b58fcb422d2d73a121554216054be179.png

> 加锁和并发

加锁:对整张表进行加锁,而不是行。

并发:在读数据的时候,所有的表上都可以获得共享锁(读锁),每个连接都不互相干扰。

在写数据的时候,获得排他锁,会把整个表进行加锁,而其他的连接请求(读,写请求)都处于等待中。

> 修复表

>> 查看表状态

3ae73558085507b5944adb61140db1cb.png

>> check一下表,看表是否正常。

28b3f532c02e1b5dfa4600c99df013ac.png

>> repair(修复) 一下表。呵呵,我的这张表是正常的。

fb397e264f514238a6e850cc582b2807.png

> 列索引。可以基于BLOB或TEXT类型列的前500个字符,创建相关索引。

>> 给t2表添加一个text列。

a06acca22c4fa8e2f35dc6b9b5cd384a.png

>> 表结构如下

86bae9ba46170036180cb5dc5a1648e1.png

>> 为content字段添加全文索引

18ea48f02d75f9776a9ab363b5581c82.png

>> 查看表的索引情况

1624681f9a1086578b0b0e1c8936036e.png

> 延迟更新索引。MYISAM 默认把DELAY_KEY_WRITE开启, 整个选项是MYISAM引擎独有的。

913421e47c6b3dba53b90865286beb63.png

注意:在查询结束后,不会将索引的改变数据写入磁盘,而是改变内存中的索引数据。只有在清理缓冲区或关闭表时才将索引块转储到磁盘。

> 压缩表

>> 查看数据文件位置

e6814f37011d7ba2e9c2d24135805e46.png

>> 压缩文件

0f53b07fd82f9424b922a2686dc330b4.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SQLAlchemy 是一个 SQL 工具包和对象关系映射(ORM)库,用于 Python 编程语言。它提供了一个高级的 SQL 工具和对象关系映射工具,允许开发者以 Python 类和对象的形式操作数据库,而无需编写大量的 SQL 语句。SQLAlchemy 建立在 DBAPI 之上,支持多种数据库后端,如 SQLite, MySQL, PostgreSQL 等。 SQLAlchemy 的核心功能: 对象关系映射(ORM): SQLAlchemy 允许开发者使用 Python 类来表示数据库表,使用类的实例表示表的行。 开发者可以定义类之间的关系(如一对多、多对多),SQLAlchemy 会自动处理这些关系在数据库的映射。 通过 ORM,开发者可以像操作 Python 对象一样操作数据库,这大大简化了数据库操作的复杂性。 表达式语言: SQLAlchemy 提供了一个丰富的 SQL 表达式语言,允许开发者以 Python 表达式的方式编写复杂的 SQL 查询。 表达式语言提供了对 SQL 语句的灵活控制,同时保持了代码的可读性和可维护性。 数据库引擎和连接池: SQLAlchemy 支持多种数据库后端,并且为每种后端提供了对应的数据库引擎。 它还提供了连接池管理功能,以优化数据库连接的创建、使用和释放。 会话管理: SQLAlchemy 使用会话(Session)来管理对象的持久化状态。 会话提供了一个工作单元(unit of work)和身份映射(identity map)的概念,使得对象的状态管理和查询更加高效。 事件系统: SQLAlchemy 提供了一个事件系统,允许开发者在 ORM 的各个生命周期阶段插入自定义的钩子函数。 这使得开发者可以在对象加载、修改、删除等操作时执行额外的逻辑。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值