MySQL 汇总

mysql 特性(ACID):
原子性(Atomicity)
一个事务就是一个原子,一个事务中的一系列的相关操作,要么全部成功,要么回撤为初始状态,不会停留在中间状态
一致性(Consistency)
事务执行的结果,必须是使数据库从一个一致性状态,变为另一个一致性状态
隔离性(Isolation)
一个事务内部操作及使用的数据对其他并发事务是隔离的,并发执行的各个事务之间不能相互干扰
持续(久)性(Durability)
一个事务一旦提交,它对数据的改变就是永久性的,接下来其他操作或故障不应该对其执行的结果有任何影响

mysql事务级别:
读取未提交数据
所有事务都可以看到其他未提交事务的执行结果,很少用于实际应用;读取未提交数据,也称之为 脏读
读取提交数据
一个事务只能看到已经提交事务所做出的改变;同一事务的其他实例在该实例处理期间可能会有新的提交,所有同一查询可能会有不同的结果
可重读
它确保同一事务的多个实例在并发读取数据时,看到的都是同样的数据;
但可能会出现幻读,幻读指当用户读取某一范围的数据时,另一个事务又在该范围内插入了新行,当用户再次读取该范围的数据时,会出现新(幻影)行。
可串行化
这是最高的隔离级别,通过强制事务排序,使之不发生冲突,从而解决幻读问题。简而言之它是在每个读的数据行上加共享锁,不过可能会导致大量超时现象

参考:https://blog.csdn.net/weisong530624687/article/details/90075063

索引
主键索引 (PRIMARY KEY)
主键索引是一种特殊的唯一索引,一个表只能有一个主键,不允许有空值
普通索引 (INDEX)
也叫单列索引 是最基本的索引,没有任何限制
唯一索引 (UNIQUE)
唯一索引和普通索引类似,注意区别是唯一索引限制列的值必须唯一
复合索引
也叫组合索引 是在多个字段上创建的索引,复合索引遵守“最左前缀”原则,既 在查询条件中使用了复合索引的第一个字段,索引才会被使用
全文索引 (FULLTEXT)

模糊查询都是通过 like 进行的,但对于海量数据,这并不是一个好的办法,like "value%" 可以使用索引,但 like "%value%" 这样的方式,执行全表查询,可以考虑使用全文所云进行优化
注意:MySQL默认是不支持中文全文索引的,对于全文索引场景,更专业的做法是使用全文搜索引擎,如 ElasticSearch 或 Solr, Sphinx

 参考:https://blog.csdn.net/u010648555/article/details/81102957

原文地址:https://www.cnblogs.com/blue-t/p/14590944.html