MySQL
文章平均质量分 83
黄智霖-blog
骨灰级技术爱好者
展开
-
MySQL--join算法(Nested-Loop Join、Block Nested-Loop Join)
MySQL的一个连接查询涉及到两张表的关联,既然涉及到两张表的关联那么就需要一定的算法来组织数据。关联的两张表,一个叫做**驱动表**,一个叫做**被驱动表**。原创 2021-04-15 00:46:44 · 6056 阅读 · 3 评论 -
MySQL--count(*)、count(1)、count(id)、count(field)比较
注:环境为MySQL 7 InnoDB测试首先创建一个测试表:CREATE TABLE `test_table` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `num` bigint(20) DEFAULT NULL, PRIMARY KEY (`id`), KEY `I1` (`num`) USING BTREE) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;test_table表中有两个索引,分别是.原创 2021-04-14 00:23:11 · 2046 阅读 · 3 评论 -
MySQL查询当前事务ID TRX_ID
#begin不会立即分配TRX_IDbegin;#触发分配TRX_IDselect * from t;#指定TRX_MYSQL_THREAD_ID=当前CONNECTION_ID,表示查询当前连接select TRX_ID from INFORMATION_SCHEMA.INNODB_TRX where TRX_MYSQL_THREAD_ID = CONNECTION_ID();commit;原创 2021-04-12 01:12:20 · 5342 阅读 · 3 评论 -
MySQL总结--MVCC(read view和undo log)
MVCC(Multi-Version Concurrency Control),即多版本并发控制,数据库通过它能够做到遇到并发读写的时候,在不加锁的前提下实现安全的并发读操作,是一种乐观锁的实现方式,能大大提高数据库的并发性能。原创 2021-04-12 00:57:59 · 6810 阅读 · 9 评论 -
MySQL事务和锁总结
- 原子性(Atomicity) :一个事务中的操作,要么全部成功,要么全部失败,可以通过undo log回滚。- 一致性(Consistent) :在事务的前后,数据都必须保持一致状态。如果事务在执行过程中被中断,导致一部分更新已经入库,但是这部分数据没有回滚,就出现了数据不一致。可以简单理解为和原子性类似,只是原子性关注的是行为,而一致性关注的是数据。原创 2021-04-11 01:34:08 · 2483 阅读 · 0 评论 -
MySQL--buffer pool、redo log、undo log、binlog
由于磁盘随机读写的效率很低,MySQL为了提供性能,读写不是直接操作的磁盘文件,而是在内存中开辟了一个叫做buffer pool的缓存区域,更新数据的时候会优先更新到Buffer Pool,之后再由I/O线程写入磁盘。同时为了保证MySQL宕机不丢失buffer pool中的数据,还引入了一个 叫做redo log的日志文件 。另外还有用于备份磁盘数据的bin log,用于事务回滚和MVCC的undo log等。对于日志文件则采取顺序读写的方式提高效率。2.12.2原创 2021-04-03 23:37:30 · 6689 阅读 · 8 评论 -
MySQL--架构组件极简总结
MySQL架构组件极简总结原创 2021-04-03 11:31:25 · 2568 阅读 · 2 评论 -
换个思维理解B+树索引
假设有一张表:create table i_t( `num` int; `age` int)现在插入5条数据:insert into i_t value(3,18);insert into i_t value(4,19);insert into i_t value(1,20);insert into i_t value(2,25);insert into i_t value(5,12);现在我们要来设计数据库的存储模型,这五条数据最终需要存储在磁盘中,那么直接...原创 2021-03-28 13:30:30 · 5266 阅读 · 6 评论 -
MySQL记录select到文件、从文件导入
注:本文简单总结,详细内容请参考官方文档1、select到文件select [fields] from [tableName] [join] where [options] into outfile [file]; 例:select * from test_table where 1=1 into outfile 'D://backup.sql'; 也可以设置编码:...原创 2019-09-02 23:07:55 · 6124 阅读 · 1 评论