MySQL
文章平均质量分 82
一个被IT搞的
这个作者很懒,什么都没留下…
展开
-
MySQL auto_increment 重启后值丢失
相关链接: 《MySQL自增变量auto_increment踩坑,重启后值丢失》 《Be Careful With MySQL's auto_increment. How We Ended Up Losing Data》 《AUTO_INCREMENT Handling in InnoDB》 背景描述与相关链接《Be Careful...》中的案例很类似,某...原创 2020-01-14 09:41:25 · 998 阅读 · 0 评论 -
【MySQL】大表优化
当MySQL单表记录数太多时,各项操作性能会明显下降。相关优化策略有很多,但肯定不是所有策略都适合某个特定案例。也许在技术层面上,很多策略都能提高性能,但我们也得考虑成本和收益(ROI)。另,是否有性能提升,或者说从整体业务角度而言综合性能表现是否更符合需求,需要经过实战测试才能确定。此文仅提供几种常见优化方案。对于某些遗留项目【其它方案】中提及的途径可能更合适 —— 优化...原创 2020-01-09 10:12:46 · 277 阅读 · 0 评论 -
【MySQL】表分区
MySQL表分区是MySQL提供的一种简单的数据表水平拆分方法。分区表是一个逻辑表,它由多个物理子表组成。目前只有 InnoDB 和 NDB 正式支持表分区。注:表分区虽然可以缓解单表数据量过大的问题,但对于减轻数据库服务器压力的作用不大,所有请求还是在争用同一服务器的资源。1. 创建分区表可在创建表时指定分区方式。例:Sql代码 createta...原创 2020-01-09 10:12:21 · 208 阅读 · 0 评论 -
【MySQL】MySQL默认事务隔离级别 —— Repeatable Read
MySQL 的默认事务隔离级别是 Repeatable Read(可重复读)。Oracle 的默认事务隔离级别是 Read Committed(读已提交)。这是一个比较“怪”的现象。毕竟这两个事务隔离级别是差异是比较大的,而这两个数据库都是通用型的产品。真实原因是MySQL为了规避一个数据复制场景中的缺陷,而选择 Repeatable Read 作为默认隔离级别。基于 ...原创 2020-01-09 10:12:02 · 1469 阅读 · 0 评论 -
【MySQL】Spring中的事务管理
Spring不直接管理事务,它提供了事务管理器,但是具体相关管理职责由 Hibernate、MyBatis 等持久层框架实现。由这些持久层框架实现与数据库服务的通信。@Transactional使用Spring提供的事务框最普遍的方式是 在事务方法上添加标记 @Transactional,并设置相关属性。如:Java代码 @Transactional(propa...原创 2020-01-09 10:11:41 · 115 阅读 · 0 评论 -
【MySQL】索引结构
为数据表增加索引(Index)可以提升MySQL数据查询效率。MySQL中所有类型的数据字段都可以有索引。索引指向了数据表中的记录(行),可以快速判断某行记录是否符合 where 语句中的限定条件。但是索引并不是越多越好: 索引需要耗费存储空间; 索引越多,MySQL在决定采用哪个索引时也会消耗更多时间; 数据的 增、删、改 都会引起索引的维护操作; 如果总...原创 2020-01-09 10:11:09 · 102 阅读 · 0 评论 -
【MySQL】事务 与 锁
事务的 4个 特性(ACID) 原子性(Atomicity):事务是不可分割的工作单元,其包含的操作,要么都做,要么都不做。 一致性(Consistency):事务执行后,数据记录必须符合各项约束条件。 隔离性(Isolation):并发事务的执行不能相互干扰。 持久性(Durability):事务成功提交意味着相关改动已被持久化保存。即使数据库服务中断,...原创 2020-01-08 20:02:41 · 88 阅读 · 0 评论 -
【MySQL】索引类型
MySQL支持多种类型的索引。在使用时可以根据业务需求选择合适的索引类型。普通索引就是没有特殊限制的索引。示例:Sql代码 createindex'index_name_1'ontable1(column1); 唯一索引唯一索引所使用的列(Column)值必须唯一,可以是空值,而且是允许多个空值。如果索引引用了多列,则其组合的列值必...原创 2020-01-08 20:02:31 · 118 阅读 · 0 评论 -
【MySQL】字符集设置
较真点说,“字符集”指多个字符的合集,“字符编码”指对字符集中的字符进行编码的方式(方便信息传输)。字符集 与 字符编码 是 1:N 的关系。如,UTF-8 是针对 Unicode字符集 的一种编码方式。在实际使用场景中,往往用 “字符集(Character Set)是xx” 来表示使用了哪种具体的 字符编码方式。如 “此处使用的字符集是 UTF-8” 这句话其实是说 “此处...原创 2020-01-08 20:02:18 · 378 阅读 · 0 评论 -
【MySQL】两种存储引擎 —— MyISAM vs InnoDB
.InnoDB 和 MyISAM 是MySQL中最常见的两种存储引擎。通常: 读操作密集的表,选MyISAM 写操作密集的表,选InnoDB 二选一需要考虑哪些特性以下特性是 InnoDB 和 MyISAM 二选一时通常需要考虑的特性。MyISAMMyISAM 基于 ISAM(Indexed Sequential Access Method)改良...原创 2020-01-08 20:02:13 · 106 阅读 · 0 评论 -
【MySQL】处理 JSON 的内建方法(函数)
概览注:MySQL版本不同,所支持的方法也会有所差异。此文中部分方法需MySQL 8 创建JSON数据 搜索JSON数据内容 修改JSON数据 查看JSON数据属性 将JSON数据转换成关系型表 其它JSON方法详述JSON_ARRAY创建一个JSON数组JSON_ARRAY([val[, ...原创 2018-09-20 16:05:09 · 634 阅读 · 1 评论 -
【MySQL】处理JSON数据
业务需要灵活的数据结构通常,我们在使用MySQL这类关系型数据库时,会遵守一些准则来设计表结构。但实际应用场景与“严格的单一准则”是有差距的。因为实际情况中需要考虑多方面的平衡作出妥协。如,我们刚学完数据库原理时,往往会倾向于努力设计满足BC范式的表结构,或者至少是满足第三范式的表结构。但当我们在解决实际工程问题时,可能会作出一些无法满足这些范式要求的表结构设计决议。这些设计在...原创 2018-09-19 16:05:32 · 9250 阅读 · 1 评论 -
MySQL 查询排名
参考:http://fellowtuts.com/mysql/query-to-obtain-rank-function-in-mysql 前段时间看到个帖子,是关于用 SQL 查询排名的。那个帖子里针对的数据库是 Oracle,用到了 Oracle 自带的函数 RANK(或 DENSE_RANK)。由于 MySQL 里没有相应的类似函数,所以写 SQL 会稍微繁琐一点。参考文章的主要思路原创 2017-04-06 15:53:08 · 4663 阅读 · 0 评论