随笔分类 -  高性能MySql

摘要:在MySQL中,MOD() 函数用于执行模运算,即求两个数相除后的余数。 这个函数可以接受两个参数,第一个参数是被除数(dividend),第二个参数是除数(divisor)。函数的语法如下: MOD(dividend, divisor) 这里有一些关于MOD()函数的要点和例子: 基本用法: 如果 阅读全文
posted @ 2024-06-25 14:53 使用D 阅读(620) 评论(0) 推荐(0) 编辑
摘要:在MySQL中,LIMIT 和 OFFSET 子句是用来控制从数据库中检索结果集的一部分,通常用于分页查询中。 以下是它们的用法: 1、LIMIT 一个参数 当 LIMIT 后面跟一个参数时,这个参数表示要返回的行数。例如: SELECT * FROM table_name LIMIT 5; 2、L 阅读全文
posted @ 2024-06-24 19:18 使用D 阅读(675) 评论(0) 推荐(0) 编辑
摘要:在 MySQL 8.0 及更高版本中,ROW_NUMBER() 函数作为窗口函数被引入,这使得在查询结果中为行分配一个唯一编号变得更加直接和简单。 ROW_NUMBER() 函数的基本语法如下: ROW_NUMBER() OVER ( [PARTITION BY partition_expressi 阅读全文
posted @ 2024-06-24 18:42 使用D 阅读(828) 评论(0) 推荐(0) 编辑
摘要:1、节点存储关键字多,IO次数少 B-树和B+树最重要的一个区别就是B+树只有叶节点存放数据,其余节点用来索引,而B-树是每个索引节点都会有Data域。 B+树的一个结点可以存储更多的关键字,每个结点能索引的范围更大更精确,也意味着B+树单次磁盘IO的信息量大于B树,I/O的次数相对减少。 B+树空 阅读全文
posted @ 2024-06-24 17:00 使用D 阅读(116) 评论(0) 推荐(0) 编辑
摘要:数据库为什么要设计索引? 有索引,用于提升数据库的查找速度 哈希(hash)比树(tree)更快,索引结构为什么要设计成树型? 加速查找速度的数据结构,常见的有两类: (1)哈希,例如HashMap,查询/插入/修改/删除的平均时间复杂度都是O(1); (2)树,例如平衡二叉搜索树,查询/插入/修改 阅读全文
posted @ 2024-06-24 16:51 使用D 阅读(5) 评论(0) 推荐(0) 编辑
摘要:sudo apt update sudo apt install mysql-server systemctl start mysql sudo mysql_secure_installation sudo mysql -u root -p 阅读全文
posted @ 2024-05-07 10:27 使用D 阅读(2) 评论(0) 推荐(0) 编辑
摘要:MySQL中的InnoDB存储引擎广泛使用了B+树作为索引的数据结构,这是因为它特别适合于磁盘I/O密集型操作,能够高效地处理大量的数据查询。 B+树的基本特性 有序性:B+树的所有叶子节点包含了全部的关键字以及对应的数据记录指针,并且这些叶子节点是按关键字的大小顺序链接在一起的。这使得范围查询和排 阅读全文
posted @ 2024-04-29 22:32 使用D 阅读(33) 评论(0) 推荐(0) 编辑
摘要:MySQL的Undo Log(回滚日志)是InnoDB存储引擎中一个核心的组件,它主要有以下两个目的: 确保事务的原子性 支持多版本并发控制(MVCC) 1. 事务的原子性保证 Undo Log记录了数据更改之前的状态。 当一个事务开始修改数据时,InnoDB首先会在Undo Log中记录这些更改的 阅读全文
posted @ 2024-04-29 16:17 使用D 阅读(52) 评论(0) 推荐(0) 编辑
摘要:Doublewrite Buffer,即“双重写缓冲”,是MySQL数据库InnoDB存储引擎中一个非常关键的组件,主要用于提高数据的安全性和完整性。 它的设计目的是为了防止在数据库崩溃时由于部分写入操作而导致的数据页损坏。 工作原理 写操作前的缓冲:当数据库需要更新一个数据页时,InnoDB引擎首 阅读全文
posted @ 2024-04-29 15:40 使用D 阅读(215) 评论(0) 推荐(0) 编辑
摘要:mysql向外扩展(横向扩展或者水平扩展)策略主要有三方面:复制、拆分、数据分片; 水平扩展的最简单的方式就是通过复制将数据分发到多个服务器上,然后将备库用于读查询。复制技术用于以读为主的服务效果最好;但是当数据规模比较大时,复制也有一些问题,例如主从同步间隔时间过长。 数据拆分以及分配方式: 1、 阅读全文
posted @ 2018-10-07 23:15 使用D 阅读(9467) 评论(2) 推荐(0) 编辑
摘要:1、B-tree索引特定 B-tree索引能够被用于使用了 =, >, >=, <, <=, or BETWEEN 操作的表达式中。 B-tree索引也能被使用在Like表达式中(如果like表达式前不是以%开头),例如:select * from a where b like 'a%'; 2、Ha 阅读全文
posted @ 2018-09-02 23:20 使用D 阅读(167) 评论(0) 推荐(0) 编辑
摘要:1、独列的列是指索引不能是表达式的一部分,也不能是函数的一部分。 始终将索引单独放在比较符号的一侧 下面这两种就是有问题的: select * from user where id +1 =5; select * from user where (left(modifydate,10)-left(c 阅读全文
posted @ 2018-08-31 00:12 使用D 阅读(185) 评论(0) 推荐(0) 编辑
摘要:Innodb是事务性引擎,它被设计用于处理大量的短期事务,短期事务大部分是正常提交,很少有回滚的情况。 Innodb将数据和索引放在单独的文件中。 Innodb的数据存储在表空间中。 Innodb采用MVCC来支持高并发,并且实现了四个标准的隔离级别 默认隔离级别为repeatable read可重 阅读全文
posted @ 2018-08-30 23:00 使用D 阅读(491) 评论(0) 推荐(0) 编辑
摘要:索引可让服务器快速定位到表中的指定位置 常见的B-tree索引,按照顺序存储数据,所以mysql可以用来做group by和order by操作。 因为B-tree索引的数据是有序的,所以B-tree也可以将相关的列值都存储在一起。 索引中存储了实际的值,因此部分查询只需要索引就能完成全部查询 根据 阅读全文
posted @ 2018-08-30 22:43 使用D 阅读(116) 评论(0) 推荐(0) 编辑
摘要:只有Memory引擎支持哈希索引(不讨论NDB集群支持唯一哈希索引的情况) 哈希索引基于哈希表实现,只有精确匹配索引所有列的查询才有效。 存储引擎会根据所有的索引计算出一个哈希码 哈希索引将所有的哈希码存储在索引中,同时在哈希表中保存指向每个数据行额指针。 因为索引只是只需要存储对应的哈希值,所以索 阅读全文
posted @ 2018-08-29 23:06 使用D 阅读(2419) 评论(0) 推荐(0) 编辑
摘要:存储引擎在修改表的数据时,只需要修改其内存拷贝,在把该修改行为记录到持久化在硬盘上的事务日志中,而不是每次都将修改的数据本身持久化到磁盘, 事务日志采用追加的方式。 阅读全文
posted @ 2018-08-27 21:45 使用D 阅读(230) 评论(0) 推荐(0) 编辑
摘要:一组原子性的SQL查询或者工作单元。(事务内的语句要做全部执行,要不全部不执行) ACID原则: Atomicity:原子性,一组原子性的SQL查询或者工作单元。(事务内的语句要做全部执行,要不全部不执行) consistency:一致性,数据库总是从一个一致性状态转换到另一个一致性状态 isola 阅读全文
posted @ 2018-08-27 21:44 使用D 阅读(485) 评论(0) 推荐(0) 编辑
摘要:读写锁 例子:A用户正在读取25号邮件,而B用于试图删除25号邮件。 解决这类问题的方法时并发控制:共享锁(读锁)和排它锁(写锁) 锁粒度 加锁需要消耗资源,包括获得锁、检查锁是否已经被解除、释放锁等。 在锁和数据的安全性上平衡后,一般都是在行上加锁(row-lock) table-lock表锁 M 阅读全文
posted @ 2018-08-27 21:44 使用D 阅读(413) 评论(0) 推荐(0) 编辑
摘要:mysql innodb默认的事务处理级别是'REPEATABLE-READ',也就是可重复读 对于非锁定读取,同一事务中两次读取的是相同的快照 对于锁定读取(select带for update或者for share)或者update或者delete语句,根据语句中使用的是唯一性索引条件还是范围类型 阅读全文
posted @ 2018-08-27 21:43 使用D 阅读(196) 评论(0) 推荐(0) 编辑
摘要:MVCC说明 MVCC只适用于repeatable read和read commit两个隔离级别 (read uncommit总是读取最新的数据行,不符合当前事务版本的数据行) (serializable则会对所用行加锁) MVCC是行锁的一种变种 根据不同的存储引擎,MVCC有不同的实现,典型的有 阅读全文
posted @ 2018-08-27 21:43 使用D 阅读(326) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示