随笔分类 -  数据库

在工作中遇到问题,在问题中成长
摘要:mysql 事务有四种隔离级别,分别是:读未提交READ UNCOMMITTED 、读提交 READ COMMITTED、可重复读REPEATABLE READ、串行化SERIALIZABLE。下面我们分别看下不同隔离级别下对事务的影响。 首先查看mysql的隔离级别: show variables 阅读全文
posted @ 2022-03-14 17:01 丘木 阅读(925) 评论(0) 推荐(0) 编辑
摘要:01 整个字段加索引 先亮出表设计: CREATE TABLE IF NOT EXISTS `t`( `id` INT(11) NOT NULL AUTO_INCREMENT, `url` VARCHAR(100) NOT NULL, PRIMARY KEY ( `id` ) )ENGINE=Inn 阅读全文
posted @ 2022-03-14 14:25 丘木 阅读(175) 评论(0) 推荐(0) 编辑
摘要:binlog 我们中文一般称作归档日志,如果大家看过松哥之前发的 MySQL 主从搭建,应该对这个日志有印象,当我们搭建 MySQL 主从的时候就离不开 binlog(传送门:MySQL8 主从复制踩坑指南)。 binlog 是 MySQL Server 层的日志,而不是存储引擎自带的日志,它记录了 阅读全文
posted @ 2022-03-11 15:34 丘木 阅读(328) 评论(0) 推荐(0) 编辑
摘要:说个前提,接下来说的案例都是基于 InnoDB 存储引擎,且事务的隔离级别是可重复读。 为什么会发生这种的事故? InnoDB 存储引擎的默认事务隔离级别是「可重复读」,但是在这个隔离级别下,在多个事务并发的时候,会出现幻读的问题,所谓的幻读是指在同一事务下,连续执行两次同样的查询语句,第二次的查询 阅读全文
posted @ 2022-03-11 11:33 丘木 阅读(794) 评论(0) 推荐(0) 编辑
摘要:select查询语句是不会加锁的,但是select .......for update除了有查询的作用外,还会加锁呢,而且它是悲观锁。 那么它加的是行锁还是表锁,这就要看是不是用了索引/主键。 没用索引/主键的话就是表锁,否则就是是行锁。 验证: 建表sql //id为主键 //name 为唯一索引 阅读全文
posted @ 2022-03-11 11:00 丘木 阅读(115) 评论(0) 推荐(0) 编辑
摘要:建表 SQL DROP TABLE IF EXISTS `t_ware_sale_statistics`; CREATE TABLE `t_ware_sale_statistics` ( `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键id', 阅读全文
posted @ 2022-03-10 10:47 丘木 阅读(61) 评论(0) 推荐(0) 编辑
摘要:前言 本文将结合实例demo,阐述30条有关于优化SQL的建议,多数是实际开发中总结出来的,希望对大家有帮助。 1、查询SQL尽量不要使用select *,而是select具体字段。 反例子: select * from employee; 正例子: select id,name from empl 阅读全文
posted @ 2022-03-09 17:12 丘木 阅读(18) 评论(0) 推荐(0) 编辑
摘要:前言 我们都知道 InnoDB 在模糊查询数据时使用 "%xx" 会导致索引失效,但有时需求就是如此,类似这样的需求还有很多,例如,搜索引擎需要根基用户数据的关键字进行全文查找,电子商务网站需要根据用户的查询条件,在可能需要在商品的详细介绍中进行查找,这些都不是B+树索引能很好完成的工作。 通过数值 阅读全文
posted @ 2022-03-09 13:23 丘木 阅读(83) 评论(0) 推荐(0) 编辑
摘要:前言 我们日常做分页需求时,一般会用limit实现,但是当偏移量特别大的时候,查询效率就变得低下。本文将分四个方案,讨论如何优化MySQL百万数据的深分页问题,并附上最近优化生产慢SQL的实战案例。 limit深分页为什么会变慢? 先看下表结构哈: CREATE TABLE account ( id 阅读全文
posted @ 2022-03-08 17:47 丘木 阅读(306) 评论(0) 推荐(0) 编辑
摘要:日常开发中,我们经常会使用到group by。亲爱的小伙伴,你是否知道group by的工作原理呢?group by和having有什么区别呢?group by的优化思路是怎样的呢?使用group by有哪些需要注意的问题呢?本文将跟大家一起来学习,攻克group by~ 使用group by的简单 阅读全文
posted @ 2022-03-08 17:24 丘木 阅读(1184) 评论(0) 推荐(0) 编辑
摘要:前言 日常开发中,我们经常会使用到order by,亲爱的小伙伴,你是否知道order by 的工作原理呢?order by的优化思路是怎样的呢?使用order by有哪些注意的问题呢?本文将跟大家一起来学习,攻克order by~ 一个使用order by 的简单例子 假设用一张员工表,表结构如下 阅读全文
posted @ 2022-03-08 16:44 丘木 阅读(855) 评论(0) 推荐(0) 编辑
摘要:一:索引是什么 1:索引是一种能提高数据库查询效率的数据结构。它可以比作一本字典的目录,可以帮你快速找到对应的记录。 2:索引一般存储在磁盘的文件中,它是占用物理空间的。 3:正所谓水能载舟,也能覆舟。适当的索引能提高查询效率,过多的索引会影响数据库表的插入和更新功能。 二:索引有哪些类型 数据结构 阅读全文
posted @ 2022-03-08 15:00 丘木 阅读(110) 评论(0) 推荐(0) 编辑

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