随笔分类 - sql
摘要:加索引的原则: 区分度越高越好,区分度高,意味着重复的值少 使用前缀索引,定义好长度,就可以做到既节省空间,又不用额外增加太多的查询成本。 email的例子 zhangsan@qq.com zhangsi@qq.com zhangwu@qq.com 索引1 :email 索引2: email(7)
阅读全文
摘要:普通索引 普通索引是最基本的索引类型,它是数据库表中的某个列或者某些列上创建的索引结构,目的是为了提高数查询效率 唯一索引 唯一索引是在普通索引的基础上加了唯一性要求 从性能的角度考虑,你选择唯一索引还是普通索引呢?选择的依据是什么呢? 在查询能力上没有差别,主要考虑是对更新性能影响,所以尽量使用普
阅读全文
摘要:读已提交和可重复读会默认开启视图 read view 视图概念 1.一个是view,他是查询语句定义的虚拟表 2.另一个是innodb在实现mvcc时用到的一致性视图,read view,拥有支持读已提交、可重复读隔离级别的实现 快照在mvcc是怎样工作的 1.innodb为每个事务构造了一个数组,
阅读全文
摘要:mysql 锁 全局锁 全局锁就是对整个数据库实例加锁。全局锁的典型使用场景是,做全库逻辑备份。 -- 加全局锁 命令:Flush tables with read lock (FTWRL) -- 释放全局锁 命令:unlock tables -- 设置全局只读 set global readonl
阅读全文
摘要:user_score表 create table user_score ( id int auto_increment primary key, score int default 0 not null, user_id int default 12 not null, constraint use
阅读全文
摘要:1.tinyint(1字节--4位【带符号】) 很小的整数。带符号的范围是-128到127。无符号的范围是0到255。 2.smallint(2字节--6位【带符号】) 小的整数。带符号的范围是-32768到32767。无符号的范围是0到65535。 3.mediumint(3字节--9位【带符号】
阅读全文
摘要:结论:count(字段)<count(id)<count(1)≈count(*) count(*)的实现方式 MyISAM把一个表的总行数储存在磁盘里,count(*)直接返回 InnoDB一行一行读,累计计数 统计表行数(不准确) show table status count(*)、count(
阅读全文
摘要:索引:是为了提高数据查询的效率 常见模型: 哈希表(以键值对key-value存储数据的结构) 适应场景:哈希表这种结构适用于只有等值查询的场景 思路:把值放在数组里,用一个哈希函数把key换算成一个确定的位置,然后把value放在数组的这个位置 冲突的解决办法:链表 有序数组 有序数组索引只适用于
阅读全文
摘要:InnoDB支持事务,MyISAM不支持事务 事务的特征(ACID) 原子性 一致性 隔离性 持久性 oracle的隔离级别是“读提交” 不同事务隔离级别: 读未提交:别人改数据的事务尚未提交,我在我的事务中也能读到。 读已提交:别人改数据的事务已经提交,我在我的事务中才能读到。 可重复读:别人改数
阅读全文
摘要:mysql分为server层和层存储引擎层 类型:InnoDB、MyISAM 查询过程 连接器:与客户端建立连接、获得权限、维持和管理命令 查询缓存:弊大于利,在8.0之后已去除 分析器:对sql语法做解析,sql是由字符串和空格组成的,mysql需要识别里边的字符串分别是什么,代表什么,识别完成后
阅读全文
摘要:地址:https://leetcode-cn.com/problems/delete-duplicate-emails/ ## 编写一个 SQL 查询,来删除 Person 表中所有重复的电子邮箱,重复的邮箱里只保留 Id 最小 的那个。 示例: + + + | Id | Email | + + +
阅读全文
摘要:地址:https://leetcode-cn.com/problems/rising-temperature/ ## 给定一个 Weather 表,编写一个 SQL 查询,来查找与之前(昨天的)日期相比温度更高的所有日期的 Id。 示例: 给定一个 Weather 表,编写一个 SQL 查询,来查找
阅读全文
摘要:地址:https://leetcode-cn.com/problems/employees-earning-more-than-their-managers/ ## 编写一个 SQL查询,交换所有的 f 和 m 值(例如,将所有 f 值更改为 m,反之亦然 示例: Employee 表包含所有员工,
阅读全文
摘要:地址:https://leetcode-cn.com/problems/swap-salary/submissions/ ## 编写一个 SQL查询,交换所有的 f 和 m 值(例如,将所有 f 值更改为 m,反之亦然 示例: 给定一个 salary 表,如下所示,有 m = 男性 和 f = 女性
阅读全文
摘要:地址:https://leetcode-cn.com/problems/not-boring-movies/ ## 编写一个 SQL查询,找出所有影片描述为非 boring (不无聊) 的并且 id 为奇数 的影片,结果请按等级 rating 排列 示例: 某城市开了一家新的电影院,吸引了很多人过来
阅读全文
摘要:地址:https://leetcode-cn.com/problems/classes-more-than-5-students/ ## 请列出所有超过或等于5名学生的课。 示例: 有一个courses 表 ,有: student (学生) 和 class (课程)。 请列出所有超过或等于5名学生的
阅读全文
摘要:地址:https://leetcode-cn.com/problems/big-countries/ ## 编写一个SQL查询,输出表中所有大国家的名称、人口和面积。 示例: 这里有张 World 表 + + + + + + | name | continent | area | populatio
阅读全文
摘要:地址:https://leetcode-cn.com/problems/second-highest-salary/solution/di-er-gao-de-xin-shui-by-leetcode/ ## 编写一个 SQL 查询,获取 Employee 表中第二高的薪水(Salary) 。 示例
阅读全文
摘要:编写一个 SQL 查询,查找 Person 表中所有重复的电子邮箱。 示例: + + + | Id | Email | + + + | 1 | a@b.com | | 2 | c@d.com | | 3 | a@b.com | + + + 根据以上输入,你的查询应返回以下结果: + + | Emai
阅读全文
摘要:表设计: users_buy: users_score: 需求: 1.根据用户分组,找出用户消费最高的金额 2.更新他们的余额
阅读全文


浙公网安备 33010602011771号