MysQL大变身!MysQL进阶之索引、事务与存储引擎

【MySQL进阶】事务、存储引擎、索引、SQL优化、锁 索引是帮助MySQL高效获取数据的数据结构(有序),这些数据结构以某种方式引用(指向)数据,这种数据结构就是索引。 阅读详情


MysQL索引

索引的概念

  • 索引是一个排序的列表,在这个列表中存储着索引的值和包含这个值的数据所在行的物理地址(类似于c语言的链表通过指针指向数据记录的内存地址)

  • 使用索引后可以不用扫描全表来定位某行的数据,而是先通过索引表找到该行数据对应的物理地址然后访问相应的数据,因此能加快数据库的查询速度。

  • 索引就好比是一木书的目录,可以根据目录中的页码快速找到所需的内容。

  • 索引是表中一列或者若干列值排序的方法。

  • 建立索引的目的是加快对表中记录的查找或排序。

索引的作用

  • 设置了合适的索引之后,数据库利用各种快速定位技术,能够大大加快查询速度,这是创建所有的最主要的原因。
  • 当表很大或查询涉及到多个表时,使用索引可以成千上万倍地提高查询速度。
  • 可以降低数据库的IO成本,并且索引还可以降低数据库的排序成本。
  • 通过创建唯一性索引,可以保证数据表中每一行数据的唯一性。
  • 可以加快表与表之间的连接。
  • 在使用分组和排序时,可大大减少分组和排序的时间。

索引的副作用

  • 索引需要占用额外的磁盘空间。
    对于 MyISAM 引擎而言,索引文件和数据文件是分离的,索引文件用于保存数据记录的地址。
    而 lnnoDB 引擎的表数据文件本身就是索引文件。
  • 在插入和修改数据时要花费更多的时间,因为索引也要随之变动。

创建索引的原则依据

索引虽可以提升数据库查询的速度,但并不是任何情况下都适合创建索引。因为索引本身会消耗系统资源,在有索引的情况下,数据库会先进行索引查询,然后定位到具体的数据行,如果索引使用不当,反而会增加数据库的负担。

  • 表的主键、外键必须有索引。因为主键具有唯一性,外键关联的是子表的主键,查询时可以快速定位。
  • 记录数超过300行的表应该有索引。如果没有索引,每次查询都需要把表遍历一遍,会严重影响数据库的性能。
  • 经常与其他表进行连接的表,在连接字段上应该建立索引。
  • 唯一性太差的字段不适合建立索引。
  • 更新太频繁地字段不适合创建索引。
  • 经常出现在 where 子句中的字段,特别是大表的字段,应该建立索引。
  • 索引应该建在选择性高的字段上。
  • 索引应该建在小字段上,对于大的文本字段甚至超长字段,不要建索引。

索引的分类和创建

create table member (id int(10),name varchar(10),cardid varchar(10),phone int(11),address varchar(50),remark text);

普通索引

最基本的索引类型,没有唯一性之类的限制。

直接创建索引
CREATE INDEX 索引名 ON 表名 (列名[(length)]);

(列名(length)):length是可选项,下同。如果忽略length的值,则使用整个列的值作为索引。如果指定使用列的前length个字符来创建索引,这样有利于减小索引文件的大小。

索引名建议以"_index"结尾。

create index name_index on member (name);
修改表方式创建
ALTER TABLE 表名 ADD INDEX 索引名 (列名);
创建表的时候指定索引
CREATE TABLE 表名 (字段1 数据类型,字段2 数据类型[,...],INDEX 索引名 (列名));

唯一索引

与普通索引类似,但区别是唯一索引列的每个值都唯一。唯一索引允许有空值(注意和主键不同)。如果是用组合索引创建,则列值的组合必须唯一。添加唯一键将自动创建唯一索引。

直接创建唯一索引:
CREATE UNTQUE INDEX 索引名 ON 表名(列名);
create unique index cardid_index on member(cardid);
修改表方式创建
ALTER TABLE 表名 ADD UNIQUE 索引名(列名);
创建表的时候指定
CREATE TABLE 表名 (字段1 数据类型,字段2 数据类型[,...],UNIQUE 索引名(列名));

主键索引

是一种特殊的唯一索引,必须指定为"PRLINARY KEY"。一个表只能有一个主键,不允许有空值。添加主键将自动创建主键索引。

创建表的时候指定
CREATE TABLE表名([...],PRIMARY KEY (列名));
修改表方式创建
ALTER TABLE 表名 ADD PRIMARY KEY (列名);
alter table member add primary key (id);

组合索引(单列索引与多列索引)

可以是单列上创建的索引,也可以是在多列上创建的索引。需要满足最左原则,因为 select语句的 where条件是依次从左往右执行的,所以在使用select 语句查询时 where 条件使用的字段顺序必须和组合索引中的排序一致,否则索引将不会生效。

CREATE TABIE 表名 (列名1 数据类型,列名2 数据类型,列名3 数据类,INDEX 索引名 (列名1,列名2,列名3));
select * from 表名 where 列名1='...'  AND 列名2='...' AND 列名3='...';

全文索引(FULLTEXT)

适合在进行模糊查询的时候使用,可用于在一篇文章中检索文本信息。在MySQT5.6版本以前 FULLTEXT 索引仅可用于 MyISAM 引擎,在5.6版本之后 innodb 引擎也支持 FULLTEXT 索引。全文索引可以在CHAR、VARCHAR 或者 TEXT 类型的列上创建。每个表只允许有一个全文索引。

直接创建索引
CREATE FULLTEXT INDEX 索引名 ON 表名 (列名);
修改表方式创建
ALTER TABLE 表名 ADD FULLTEXT 索引名 (列名);
alter table member add fulltext remark_index (remark);
创建表的时候指定索引
CREATE TABLE 表名(字段1 数据类型[,...],FULLTEXT 索引名 (列名));

数据类型可以为CHAR、VARCHAR 或者 TEXT

使用全文索引查询
SELECT * FROM 表名 WHERE MATCH(列名) AGAINST('查询内容');
insert into member values(l,zhangsan,123123,123123,'nanjing','this is test!');
insert into membcr values(2,'lisi',456456,456456,'beijing','this is kgc!');
insert into member values(3,'wangwu',789789,78979,'shanghai','this is kgc test!');
select * from member where match(remark) against('test');

查看索引

show index from 表名;
show keys from 表名;

各字段的含义

Table:表的名称。
Non_unique:如果索引不能包括重复词,则为0;如果可以,则为1。
Key_name:索引的名称。
seq_in_index:索引中的列序号,从1开始。
Co1umn_name:列名称。
Collation:列以什么方式存储在索引中。在MysQL中,有值’A′(升序)或NULL(无分类)。
Cardinality:索引中唯一值数目的估计值。
Sub_part:如果列只是被部分地编入索引,则为被编入索引的字符的数目。如果整列被编入索引,则为NULL.
Packed:指示关键字如何被压缩。如果没有被压缩,则为NULL。
Null:如果列含有NULL,则含有YES。如果没有,则该列含有NO。
Index_type:用过的索引方法(BTREE,FULLTEXT,HASH,RIREE)。
Comment:备注。

删除索引

  • 直接删除索引
DROP INDEX 索引名 ON 表名;
  • 修改表方式删除索引
ALTER TABLE 表名 DROP INDEX 索引名;
  • 删除主键索引
ALTER TABLE 表名 DROP PRIMARY KEY;

MysoL事物

事务的概念

  • 事务是一种机制、一个操作序列,包含了一组数据库操作命令,并且把所有的命令作为一个整体一起向系统提交或撤销操作请求,即这一组数据库命令要么都执行,要么都不执行。
  • 事务是一个不可分割的工作逻辑单元,在数据库系统上执行并发操作时,事务是最小的控制单元。
  • 事务适用于多用户同时操作的数据库系统的场景,如银行、保险公司及证券交易系统等等。
  • 事务通过事务的整体性以保证数据的一致性。

说白了,所谓事务,它是一个操作序列,这些操作要么都执行,要么都不执行,它是一个不可分割的工作单位。

事务的ACID特点

ACID,是指在可靠数据库管理系统(DBwS)中,事务(transaction)应该具有的四个特性:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)。这是可靠数据库所应具备的几个特性。

原子性

指事务是一个不可再分割的工作单位,事务中的操作要么都发生,要么都不发生。
事务是一个完整的操作,事务的各元素是不可分的。
事务中的所有元素必须作为一个整体提交或回滚。
如果事务中的任何元素失败,则整个事务将失败。

一致性

指在事务开始之前和事务结束以后,数据库的完整性约束没有被破坏。
当事务完成时,数据必须处于一致状态。
在事务开始前,数据库中存储的数据处于一致状态。
在正在进行的事务中,数据可能处于不一致的状态。
当事务成功完成时,数据必须再次回到已知的一致状态。

隔离性

指在并发环境中,当不同的事务同时操纵相同的数据时,每个事务都有各自的完整数据空间。
对数据进行修改的所有并发事务是彼此隔离的,表明事务必须是独立的,它不应以任何方式依赖于或影响其他事务。
修改数据的事务可在另一个使用相同数据的事务开始之前访问这些数据,或者在另一个使用相同数据的事务结束之后访问这些数据。

事务之间的相互影响分为几种,分别为:

(1)脏读:一个事务读取了另一个事务未提交的数据,而这个数据是有可能回滚的。
(2)不可重复读:一个事务内两个相同的查询却返回了不同数据。这是由于查询时系统中其他事务修改的提交而引起的。
(3)幻读:一个事务对一个表中的数据进行了修改,这种修改涉及到表中的全部数据行。同时,另一个事务也修改这个表中的数据,这种修改是向表中插入一行新数据。那么,操作前一个事务的用户会发现表中还有没有修改的数据行,就好象发生了幻觉一样。
(4)丢失更新:两个事务同时读取同一条记录,A先修改记录,B也修改记录(B不知道A修改过),B提交数据后B的修改结果覆盖了A的修改结果。

Mysql及事物隔离级别:

(1) read uncommitted :读取尚未提交的数据:不解决脏读
(2) read committed:读取已经提交的数据:可以解决脏读
(3) repeatable read:重读读取:可以解决脏读和不可重复读—mysql默认的
(4) serializable:串行化:可以解决脏读不可重复读和虚读—相当于锁表

mysql默认的事务处理级别

mysql默认的事务处理级别是 repeatable read ,而oracle和sQL Server是 read committed 。

查询全局事务隔离级别
show global variables like ' %isolation% " ;
SELECT @@global.tx_isolation;
查询会话事务隔离级别
show session variables like '%isolation%';
SELECT @@session.tx_isolation;
SELECT @@tx_isolation;
设置全局事务隔离级别
set global transaction isolation level read committed;
设置会话事务隔离级别:
set session transaction isolation level read committed;

持久性

在事务完成以后,该事务所对数据库所作的更改便持久的保存在数据库之中,并不会被回滚。
指不管系统是否发生故障,事务处理的结果都是永久的。
一旦事务被提交,事务的效果会被永久地保留在数据库中。

总结

在事务管理中,原子性是基础,隔离性是手段,一致性是目的,持久性是结果。

事务控制语句

BEGIN 或 START TRANSACTION:显式地开启一个事务。
COMMIT 或 COMMTT WORK:提交事务,并使已对数据库进行的所有修改变为永久性的。
ROLLBACK 或 ROLLBACK WORK:回滚会结束用户的事务,并撤销正在进行的所有未提交的修改。
SAVEPOINT S1:使用 SAVEPOINT 允许在事务中创建一个回滚点,一个事务中可以有多个 SAVBPOINT;“s1”代表回滚点名称
ROLLBACK TO [SAVEPOINT] s1:把事务回滚到标记点。

例

use wolf;
create table account(
id int(10) primary key not null,
name varchar(40) ,
money double
) ;

insert into account values(1,'A',1000);
insert into account values(2,'B',1000);

测试提交事务

begin;
update account set money= money - 100 where name='A';
commit;
quit

mysql -u root -p
use wolf;
select * from account;

测试回滚事务

begin;
update account set money= money + 100 where name='A';
rollback;

mysql -u root -p
use wolf;
select * from account;

测试多点回滚

begin;
update account set money= money + 100 where name='A';
SAVEPOINT s1;
update account set money= money + 100 where name='B';
SAVEPOINT S2;
insert into account values(3,'C',1000);

select * from account;
ROLLBACK TO S1;
select * from account;

使用set设置控制事务

SET AUTOCOMMIT=0;                       #禁止自动提交
SET AUTOCOMMIT=1;                       #开启自动提交,Mysql默认为1
SHOW VARIABLES LIKE 'AUTOCOMMIT';       #查看Mysql中的AUTOCOMMIT值

如果没有开启自动提交,当前会话连接的mysql的所有操作都会当成一个事务直到你输入rollback|commit;当前事务才算结束。当前事务结束前新的mysql连接时无法读取到任何当前会话的操作结果。
如果开起了自动提交,mysql会把每个sql语句当成一个事务,然后自动的commit。
当然无论开启与否,begin; commit|rollback;都是独立的事务。

use wolf;
select * from account;
SET AUTOCOMMIT=0;
update account set money= money + 100 where name='B';
select * from account;
quit

mysql -u root -p
use wolf;
select * from account;

MysQL存储引擎

MyISAM表支持3种不同的存储格式;

静态(固定长度)表

静态表是默认的存储格式。静态表中的字段都是非可变字段,这样每个记录都是固定长度的,这种存储方式的优点是存储非常迅速,容易缓存,出现故障容易恢复;缺点是占用的空间通常比动态表多。

动态表

动态表包含可变字段,记录不是固定长度的,这样存储的优点是占用空间较少,但是频繁的更新、删除记录会产生碎片,需要定期执行0PTIMIZE TABLE语句或myisamchk -r 命令来改善性能,并且出现故障的时候恢复相对比较困难。

压缩表

压缩表由 myisamchk 工具创建,占据非常小的空间,因为每条记录都是被单独压缩的,所以只有非常小的访问开支。

查看系统支持的存储引擎

show engines;

查看表使用的存储引擎

方法一:

show table status from 库名 where name='表名'\g

方法二:

use 库名;
show create table 表名;

修改存储引擎

通过 alter table 修改

use 库名;
alter table 表名 engine=MyISAM;

通过修改/etc/my.cnf配置文件,指定默认存储引擎并重启服务

vim /etc/my.cnf
......
[mysqld]
......
default-storage-engine=INNODB

systemctl restart mysql.service

注意:此方法只对修改了配置文件并重启mysql服务后新创建的表有效,已经存在的表不会有变更。

通过create table创建表时指定存储引擎

use 库名;
create table 表名(字段1 数据类型,...) engine=MyISAM;
MySQL的静态表和动态表的区别,MyISAM和InnoDB的区别 静态表和动态表是MySQL中常用的两种表类型,它们具有不同的特点和用途。另外,MyISAM和InnoDB是MySQL中两种常见的存储引擎,它们在性能、事务支持等方面也有所差异。下面将详细介绍这些概念以及它们之间的区别。综上所述,静态表和动态表在表结构的变化和存储空间等方面有所不同,而MyISAM和InnoDB在事务支持、锁级别和性能特征等方面存在差异。选择适合的表类型和存储引擎取决于应用程序的需求和性能要求。 阅读详情

相关推荐

新能源车主必看:用高德API+充电站数据制作跨城出行充电规划工具(附完整代码)

本文为新能源车主提供了一份详细的跨城出行充电规划工具构建指南。通过整合高德地图API与充电站数据,手把手教你使用Python开发一个智能规划系统,可自动规划路线并推荐沿途充电站,有效缓解里程焦虑。文章包含完整代码、核心算法解析及可视化实现,帮助车主实现个性化、高效的出行规划。

tgb3456789的博客 899

mysql 查看索引方式及说明

2)show index返回信息说明(见3中示例说明)

weixin_48350374的博客 4327

FAST_LIO_ROS2 可以用gazebo仿真吗?

摘要:FAST_LIO_ROS2可与Gazebo仿真环境兼容,通过订阅Gazebo模拟的激光雷达和IMU数据实现SLAM建图。已有开源项目(如pb_rm_simulation)验证了该方案,支持导航模式切换与真实机器人移植。关键步骤包括环境配置、传感器话题匹配及参数调试,需注意版本兼容性与数据噪声处理。相关教程提供了从环境搭建到三维建图的完整流程。

专注 激光SLAM, 目标检测, 欢迎关注, 分享交流! 1139

【MySQL】索引的创建、查看和删除

简单介绍一下索引的创建 查看以及删除的基本语法

Java领域优质创作者,华为云享专家 7060

R 绘制环形树状图

按大类小类的从属关系绘制环形图,并把不同值的节点设置为相应大小。要求同一类的节点应为同一颜色。 按照输入,处理代码和输出记录

weixin_43718786的博客 1874

UnicodeEncodeError: ‘ascii‘ codec can‘t encode characters in position 0-4: ordinal not in range(128)

python3报错处理:UnicodeEncodeError: ‘ascii’ codec can’t encode characters in position 0-4: ordinal not in range(128) 一、报错场景 // 报错代码 Traceback (most recent call last): File "test_autoo3_2.py", line 214, in <module> main() File "test_autoo3_2.py",

浪里小飞侠的博客 4202

查看表格定义的所有索引

MySQL 提供了多种方式来查看表格上定义的所有索引,包括使用SHOW INDEX语句、查询数据库、使用DESCRIBE语句,以及通过数据库管理工具来查看索引信息。SHOW INDEX语句:最直接的方法,可以快速查看所有索引的详细信息。DESCRIBE语句:适合快速查看表的结构信息,但索引信息较为简略。:适合需要进行复杂查询和过滤时使用,提供了全面的索引信息。数据库管理工具:提供了图形化的界面,便于查看和管理索引。

Flying_Fish_roe的博客 4212

现控报告-- 分析倒立摆系统稳定性、能控性及能观性分析,设计PID控制方案(附matlab)

建立直线一级倒立摆系统的动力学模型,推导该系统的运动方程,求出直线一级倒立摆系统传递函数模型及空间状态方程模型。接着描述了PID控制系统设计原理及PID控制器各校正环节的作用,简要叙述了参数的整定方法。设计了直线一级倒立摆摆杆摆角及小车位置常规单回路控制器,通过Simulink仿真知道常规单回路控制器能控制摆杆摆角,不能控制小车位置。于是设计出了直线一级倒立摆双闭环控制器及基于倒立摆系统的状态空间方程控制器,利用软件进行仿真,仿真结果表明,常规双闭环控制方案和基于状态空间方程加控制方案均能对摆杆摆角及小车位

mengshenglo的博客 4万+

MySQL学习总结(索引的概述、索引的创建、索引的查看、索引的删除)

学习MySQL的索引的概述、索引的创建、索引的查看、索引的删除

2202_75688394的博客 4293

OMNET++ INET框架学习教程(一)

在自组网学习的道路上摸石头过河,帮你快速入门OIMNET++平台下的INET框架。

NLDwangzhe的博客 6565

中国石油招标投标网 — 中标候选人爬虫技术分析

复制真实浏览器的 TLS 握手参数(密码套件顺序、TLS 扩展、ALPN 等),绕过基于 JA3/JA3S 指纹的服务端检测。所有 API 请求体使用 RSA-1024 公钥加密,响应体使用私钥解密,HTTP body 全程为密文。库使用 urllib3 的默认 TLS 握手参数,与真实浏览器差异明显,易被 JA3 指纹检测工具识别。密钥隐藏在 CSS 文件中,这是一种隐蔽分发技术,防止简单的密钥抓取。切换次数越多,等待时间越长,最大 60 秒,避免被代理 API 限流。为空,也返回包含基础信息的空行。

猫敷雪 287

MySQL索引、事务与存储引擎

在事务管理中,原子性是基础,隔离性是手段,一致性是目的,持久性是结果。

Amrian_robot的博客 1199

OpenCV实战之人脸美颜美型(八)——大眼(上)

从大众审美的角度来看,眼睛适当的“变大”会让人显得更加年轻。因此美型中就有一项大眼功能,其效果就是让眼睛适当变大,这章内容就围绕着大眼算法展开。

On my way 1211

Mysql索引、事务、存储引擎

不是事务安全的,而且不支持外键,如果执行大量的select,insert MyISAM比较适合。假设事务A对某些行的内容作了更改,但是还未提交,此时事务B插入了与事务A更改前的记录相同的记录行,并且在事务A提交之前先提交了,而这时,在事务A中查询,会发现好像刚刚的更改对于某些数据未起作用,但其实是事务B刚插入进来的,让用户感觉很魔幻,感觉出现了幻觉,这就叫幻读。因为索引本身会消耗系统资源,在有索引的情况下,数据库会先进行索引查询,然后定位到具体的数据行,如果索引使用不当,反而会增加数据库的负担。

shuaianm的博客 2390

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

MySQL 索引、事务与存储引擎

是一个排序的列表,存储着索引值和这个值所对应的物理地址无须对整个表进行扫描,通过物理地址就可以找到所需数据是表中一列或者若干列值排序的方法需要额外的磁盘空间是一种机制、一个操作序列,包含了一组数据库操作命令,并且把所有的命令作为一个整体一起向系统提交或撤销操作请求,即这一组数据库命令要么都执行,要么都不执行是一个不可分割的工作逻辑单元,在数据库系统上执行并发操作时,事务是最小的控制单元适用于多用户同时操作的数据库系统的场景,如银行、保险公司及证券交易系统等等。

m0_74860678的博客 1232

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

MySQL 索引、事务与存储引擎(图文详解)

文章目录一、索引的概念二、索引的作用索引的副作用:三、创建索引的原则依据四、索引的分类和创建1、普通索引2、唯一索引3、主键索引4、组合索引(单列索引与多列索引)5、全文索引(FULLTEXT)五、查看索引六、删除索引 一、索引的概念 ●索引是一个排序的列表,在这个列表中存储着索引的值和包含这个值的数据所在行的物理地址(类似于C语言的链表通过指针指向数据记录的内存地址)。 ●使用索引后可以不用扫描全表来定位某行的数据,而是先通过索引表找到该行数据对应的物理地址然后访问相应的数据,因此能加快数据库的查询速度。

愿你成为自己喜欢的模样,不抱怨,不将就,有自由,有光芒! 2500

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

【MySQL 索引、事务与存储引擎】

MySQL 数据库的 索引,事务,存储引擎的命令操作和实验演示

DiKL_Y的博客 1556

数据库之mysql索引、事务以及存储引擎

索引是一个排序的列表,包含索引字段的值和其对应的行记录数据所在的物理地址。(保存索引需要额外的磁盘空间)事务就是一组数据库操作序列(包含一个或多个SQL操作命令),事务会把所有操作看成一个不可分割的整体向数据库系统提交或撤销所有操作,所有操作要么都执行,要么都不执行存储引擎是MySQL数据库的组件,负责执行实际的数据IO操作(数据的存储和提取),工作在文件系统之上,数据库的数据会先传输到存储引擎,再按照存储引擎的存储格式保存到文件系统。本章详细介绍数据库索引、引擎、事务。

Linux运维老纪的博客 1559

MySQL 索引、事务与存储引擎(详细解读)

MySQL 索引、事务与存储引擎(详细解读) 文章目录一、MySQL 索引(一)、索引的概念(二)、索引的作用1、索引的副作用(三)、创建索引的原则依据(四)、索引的分类和创建1、普通索引2、唯一索引3、主键索引4、组合索引5、全文索引6、查看索引7、删除索引 一、MySQL 索引 (一)、索引的概念 ●索引是一个排序的列表,在这个列表中存储着索引的值和包含这个值的数据所在行的物理地址(类似于C语言的链表通过指针指向数据记录的内存地址)。 ●使用索引后可以不用扫描全表来定位某行的数据,而是先通过索引表找到该

Chenwei的博文 3141

MySQL的存储引擎、索引与事务

本文是在学习MySQL时的笔记,包括存储引擎、索引与事务

m0_62740234的博客 951

mysql-索引、存储引擎、事务、锁机制和优化

本文是数据库进阶内容,包括数据库的表索引,存储引擎,数据库事务、锁机制,以及数据库优化,从各方面提高数据库的使用,优化项目,提高面试能力

mo_chen1025的博客 1868

mysql索引、事务、存储引擎

索引只会锁行非索引锁表排它锁死锁,会自动选择一个事务作为牺牲品,结束死锁。乐观锁:不会有任何提示,只是数据不能写入而已。数据提交更新时,他会进行校验,发生冲突,数据不生效而已,没有其他的报错或者是卡停一般来说,我们会在表中配置version字段,通过自增校验来查看数据是否冲突除了version 也可以用时间戳timestreap存储引擎只能是INNODBmysql默认隔离级别即可。

XH722DF的博客 893

MySQL索引、事务、存储引擎

索引 事务 存储引擎InnoDB MyISAM

Meng2453508284的博客 1170

【MySQL进阶】 存储引擎 & 索引

【MySQL进阶】 存储引擎 & 索引

南瓜籽_的博客 1194
上一篇: 关于MySQL数据库的管理及进阶用法,Level up!
下一篇: 看好吧,如何部署安装LNMP架构!一口气全告诉你!
Alterego_
博客等级 码龄6年 14粉丝 45原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值