随笔分类 -  MySql

摘要:查看MySQL提供的所有存储引擎 从上图我们可以查看出 MySQL 当前默认的存储引擎是InnoDB,并且在5.7版本所有的存储引擎中只有 InnoDB 是事务性存储引擎,也就是说只有 InnoDB 支持事务。 查看MySQL当前默认的存储引擎 我们也可以通过下面的命令查看默认的存储引擎。 查看表的 阅读全文
posted @ 2020-02-10 20:46 KrisTse 阅读(275) 评论(0) 推荐(0)
摘要:为什么索引能提高查询速度 MySQL的基本存储结构是页 (记录都存在页里边) : 各个数据页可以组成一个双向链表;每个数据页中的记录又可以组成一个单向链表;每个数据页都会为存储在它里边的记录生成一个页目录,在通过主键查找某条记录的时候可以在页目录中使用二分法快速定位到对应的槽,然后再遍历该槽对应分组 阅读全文
posted @ 2020-02-10 20:45 KrisTse 阅读(621) 评论(0) 推荐(0)
摘要:SQL 标准定义了四个隔离级别: READ UNCOMMITTED(读取未提交) 最低的隔离级别,允许读取尚未提交的数据变更,可能会导致脏读、幻读或不可重复读。 READ COMMITTED(读取已提交) 允许读取并发事务已经提交的数据,可以阻止脏读,但是幻读或不可重复读仍有可能发生。 REPEAT 阅读全文
posted @ 2020-02-10 20:44 KrisTse 阅读(1189) 评论(0) 推荐(0)
摘要:ACID 原子性 事务是最小的执行单位,不允许分割。事务的原子性确保动作要么全部完成,要么完全不起作用; 一致性 执行事务前后,数据保持一致,多个事务对同一个数据读取的结果是相同的; 隔离性 并发访问数据库时,一个用户的事务不被其他事务所干扰,各并发事务之间数据库是独立的; 持久性 一个事务被提交之 阅读全文
posted @ 2020-02-10 20:43 KrisTse 阅读(170) 评论(0) 推荐(0)
摘要:悲观锁 总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁(共享资源每次只给一个线程使用,其它线程阻塞,用完后再把资源转让给其它线程)。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做 阅读全文
posted @ 2020-02-10 20:42 KrisTse 阅读(99) 评论(0) 推荐(0)
摘要:在典型的应用程序中,多个事务并发运行,经常会操作相同的数据来完成各自的任务(多个用户对统一数据进行操作)。并发虽然是必须的,但可能会导致以下的问题: 脏读(Dirty read) 当一个事务正在访问数据并且对数据进行了修改,而这种修改还没有提交到数据库中,这时另外一个事务也访问了这个数据,然后使用了 阅读全文
posted @ 2020-02-10 20:41 KrisTse 阅读(894) 评论(0) 推荐(0)