fsoooo Blog

内不欺己,外不欺人,上不欺天。君子所以慎独。

Mysql学习笔记 Mysql规范

合理、适当的规范对于整个团队的开发是有积极作用的,可以减少不恰当的建表语句、错误 SQL、错误的索引等重大意义,故分享出来给大家参考。 下边分为建表规约、SQL 规约、索引规约三个部分,每部分的每一条都有强制、建议两个级别,大家在参考时,根据自己公司的情况来权衡。 ##建表规约 【强制】:①存储引擎必须使用 InnoDB 解读:InnoDB 支持事物、行级锁、并发性能更好,CPU...

Mysql学习笔记 Mysql的自增id会用完吗

MySQL的自增ID会用完吗? 话不多说,上代码,直接测: 首先,创建一个最简单的表,只包含一个自增 id,并插入一条数据。 create table t0 (id int unsigned auto_increment primary key) ; insert into t0 values(null); 通过 show 命令 查看表情况 show create tabl...

Mysql学习笔记 Mysql最终还是没有逃脱oracle的手掌心

芬兰程序员Monty有三个孩子,分别叫做My, Maria, Max。 这三个孩子非常幸运,因为他们的父亲把他们的名字永远地“刻”在了三个数据库产品之上: MySQL MaxDB MariaDB 这位父亲就是MySQL的主要作者Michael Widenius,大家经常叫他Monty。 今天我们来聊一聊为什么是Monty创建了MySQL,MySQL又是怎么发展...

Mysql学习笔记 Group By慢查询优化!

一、问题背景 在500万数量级的情况下,单表查询速度在30多秒,需要对sql进行优化,sql如下: 在测试环境构造了500万条数据,模拟了这个慢查询。 简单来说,就是查询一定条件下,都有哪些用户的,很简单的sql,可以看到,查询耗时为37秒。 说一下app_account字段的分布情况,随机生成了5000个不同的随机数,然后分布到了这500万条数据里,平均来说,每个app_a...

Mysql学习笔记 8种常见sql错误用法

LIMIT 语句 分页查询是最常用的场景之一,但也通常也是最容易出问题的地方。 比如对于下面简单的语句,一般 DBA 想到的办法是在 type, name, create_time 字段上加组合索引。 这样条件排序都能有效的利用到索引,性能迅速提升。 SELECT * FROM operation WHERE type = 'SQLStats' AND name =...

Mysql学习笔记 2020面试题汇总

1、MySQL 中有哪几种锁? (1)表级锁:开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突的概率最 高,并发度最低。 (2)行级锁:开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最 低,并发度也最高。 (3)页面锁:开销和加锁时间界于表锁和行锁之间;会出现死锁;锁定粒度界于表 锁和行锁之间,并发度一般。 2、MySQL 中有哪些不同的表格? 共有 5 种类型的表格:...

Mysql学习笔记 Sql 查询都是以 Select 开始的吗?

SQL 查询都是以 SELECT 开始的的吗? SQL 查询的执行顺序是怎样的? SQL 查询的执行顺序 SELECT 并不是最先执行的,而是在第五个。 这张图回答了以下这些问题 这张图与 SQL 查询的语义有关,让你知道一个查询会返回什么,并回答了以下这些问题: 可以在GRROUP BY之后使用WHERE吗?(不行,WHERE是在GROUP BY之...

Mysql学习比比 Mysql 8 0 新特性:哈希连接(hash Join)

MySQL 开发组于 2019 年 10 月 14 日 正式发布了 MySQL 8.0.18 GA 版本,带来了一些新特性和增强功能。 其中最引人注目的莫过于多表连接查询支持 hash join 方式了。 我们先来看看官方的描述: 点击查看 官方描述 MySQL 实现了用于内连接查询的 hash join 方式。 例如,从 MySQL 8.0.18 开始以下查询可以使用...

Mysql存储引擎:myisam与innodb

MyISAM:默认表类型,它是基于传统的ISAM类型,ISAM是 Indexed Sequential Access Method (有索引的顺序访问方法) 的缩写,它是存储记录和文件的标准方法。不是事务安全的,而且不支持外键,如果执行大量的select,insert MyISAM比较适合。 InnoDB:支持事务安全的引擎,支持外键、行锁、事务是他的最大特点。如果有大量的update和i...

Mysql和redis实现用户签到,你喜欢怎么实现?

现在的网站和app开发中,签到是一个很常见的功能,用户签到是提高用户粘性的有效手段,用的好能事半功倍! 下面我们从技术方面看看常用的实现手段: 一. 方案1 直接存到数据库MySQL 用户表如下: last_checkin_time 上次签到时间 checkin_count 连续签到次数 记录每个用户签到信息 签到流程 1.用户第一次签到 last_checkin...