> For the complete documentation index, see [llms.txt](https://lxs-shmily.gitbook.io/java-notes/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://lxs-shmily.gitbook.io/java-notes/shu-ju-ku/mysql-suo-yin.md).

# mysql索引

## mysql 索引

## 事务的四个特性 ： 原子性，一致性，持久性，隔离性

1）原子性（Atomicity）

一个事务(transaction)中的所有操作，要么全部完成，要么全部不完成，不会结束在中间某个环节。事务在执行过程中发生错误，会被回滚（Rollback）到事务开始前的状态，就像这个事务从来没有执行过一样。

2）一致性（Consistency）

事务的一致性指的是在一个事务执行之前和执行之后数据库都必须处于一致性状态。如果事务成功地完成，那么系统中所有变化将正确地应用，系统处于有效状态。如果在事务中出现错误，那么系统中的所有变化将自动地回滚，系统返回到原始状态。

3）隔离性（Isolation）

指的是在并发环境中，当不同的事务同时操纵相同的数据时，每个事务都有各自的完整数据空间。由并发事务所做的修改必须与任何其他并发事务所做的修改隔离。事务查看数据更新时，数据所处的状态要么是另一事务修改它之前的状态，要么是另一事务修改它之后的状态，事务不会查看到中间状态的数据。

4）持久性（Durability）

指的是只要事务成功结束，它对数据库所做的更新就必须永久保存下来。即使发生系统崩溃，重新启动数据库系统后，数据库还能恢复到事务成功结束时的状态

## 适合建立索引的字段

1 表的主键、外键必须有索引

2 经常与其他表连接的表，在连接字段上应该使用索引

3 经常出现在where字段的语句

4 索引应该建在小字段上，对于大的文本字段甚至超长字段，不要建索引

5 频繁进行数据操作的表，不要建立太多的索引

6 删除一些无用的索引，避免对执行计划造成负面影响；

## 联合索引

1 多条件联合查询时可以使用联合索引 2 联合索引使用时要注意索引列的顺序，将严格的索引放在前面 3

> 参考 <https://blog.csdn.net/Su_Xingyu/article/details/79900290>
