标签:最大的 也有 mem 报错 table 使用 特定 行锁 mys
列:有两个用户登录,一个用户要删除商品表的22号记录,另一个用户要查询22号记录,有可能会造成正在查询的用户报错并退出,也有可能查询的用户读到一条与实际记录不符的信息。解决这类问题的方法就是并发控制
在使用并发读和并发写时,系统提供了两类锁:
共享锁(读锁):多个用户可以同时读取同一个资源,读取过程中数据不会发生改变;
排他锁(写锁):在任意时刻,只允许一个用户对资源进行写操作,会阻塞其他的读锁或者写锁,不允许其他用户读和写操作;
Mysql的锁策略有两种:对一张表进行操作,也就是对表进行写操作,会阻塞其他的读锁和写锁
表锁:一种开销最小的锁(对一张表操作,直接锁整个表)
行锁:一种开销最大的锁(对一张表操作,对表中的每一条记录都要加上锁)
使用索引可以快速的访问数据表中的特定信息;
相当于一本书的目录,在查找有关信息时,查找目录就可以快速的查找到信息在哪一章节哪一页;
特点 | MyISAM | InnoDB | Memory | Archive |
存储限制 | 256TB | 64TB | 有 | 无 |
事务安全 | 支持 | |||
支持索引 | 支持 | 支持 | 支持 | |
锁颗粒 | 表锁 | 行锁 | 表锁 | 行锁 |
数据压缩 | 支持 | 支持 | ||
支持外键 | 支持 |
通常使用的都是前两种MyISAM和InnoDB;
更改存储引擎的方式:
1、在mysql的配置文件中(默认在C:\Program Files\MySQL\MySQL Server \my.ini):
default-storage-engine=INNODB
2、创建表结构时修改:
CREATE TABLE user(
...
...
)ENGINE=InnoDB;
3、创建表之后修改:
ALTER TABLE user ENGINE = InnoDB;
标签:最大的 也有 mem 报错 table 使用 特定 行锁 mys
原文地址:https://www.cnblogs.com/YpfBolg/p/10853254.html