随笔分类 -  sql

摘要:本文主要讲解的内容有: 联合索引在B+树上的存储结构 联合索引的查找方式 为什么会有最左前缀匹配原则 联合索引的存储结构 下面就引用思否社区的这个问答来展开我们今天要讨论的联合索引的存储结构的问题。来自思否的提问,联合索引的存储结构(https://segmentfault.com/q/101000 阅读全文
posted @ 2021-12-01 17:33 Tracydzf 阅读(184) 评论(0) 推荐(0) 编辑
摘要:在文章开头先抛几个问题: (1)什么时候才需要分库分表呢?我们的评判标准是什么? (2)一张表存储了多少数据的时候,才需要考虑分库分表? (3)数据增长速度很快,每天产生多少数据,才需要考虑做分库分表? 这些问题你都搞清楚了吗?相信看完这篇文章会有答案。 为什么要分库分表? 首先回答一下为什么要分库 阅读全文
posted @ 2021-06-19 11:27 Tracydzf 阅读(155) 评论(0) 推荐(0) 编辑
摘要:选择优化的数据类型原则: 1. 更小的通常更好 尽量使用可以正确存储数据的最小数据类型。更小的数据类型通常更快,因为它们占用更少的磁盘、内存和CPU缓存,并且处理时需要的CPU周期也更少。 2. 简单就好 简单数据类型需要更少的CPU周期,比如整型比字符操作代价更低,因为字符集和排序规则使字符比较比 阅读全文
posted @ 2020-12-10 15:54 Tracydzf 阅读(77) 评论(0) 推荐(0) 编辑
摘要:有一条select语句,平常查询很快,突然有一天查询很慢,可能的原因是? 锁冲突 索引失效,导致统计数据不真实 列举常见的关系型数据库与非关系型数据库 关系型数据库:Oracle、DB2、SQL Server、Microsoft Access、MySQL 非关系型数据库:NoSql、Cloudant 阅读全文
posted @ 2020-12-09 17:17 Tracydzf 阅读(162) 评论(0) 推荐(0) 编辑
摘要:About pymysql 在Python2.x中,Python连接MySQL服务器使用mysqldb库,但是它只支持到Python2.x,在Python3.x中由pymysql模块代替。 PyMySQL 遵循 Python 数据库 API v2.0 规范,并包含了 pure-Python MySQ 阅读全文
posted @ 2020-12-09 09:28 Tracydzf 阅读(80) 评论(0) 推荐(0) 编辑
摘要:about MySQL提供了丰富的内置函数自定义函数。 而我们也对这些函数有所了解,比如聚合函数。 本篇再来了解一些内置函数和自定义函数的编写。 写在前面的话:默认情况下,函数名称和其后的括号之间必须没有空格。这有助于MySQL解析器区分函数调用和对与函数名称相同的表或列的引用。但是,函数参数周围可 阅读全文
posted @ 2020-12-08 17:37 Tracydzf 阅读(2197) 评论(0) 推荐(0) 编辑
摘要:about 视图是虚拟表,是从数据库中一个或多个表中导出来的表,其内容由查询定义;同真实表(基表)一样,视图包含一系列带有名称的字段和记录,在使用视图时动态生成。视图的数据变化会影响到基表,基表的数据变化也会影响到视图(insert、update、delete)。 另外,创建视图需要有create 阅读全文
posted @ 2020-12-08 17:20 Tracydzf 阅读(164) 评论(0) 推荐(0) 编辑
摘要:多表连接查询 多表连接,就是将几张表拼接为一张表,然后进行查询,先来看基本语法: SELECT col1, col2 FROM t1 INNER/LEFT/RIGHT JOIN t2 ON 连接条件(t1.col=t2.col) ; 接下来,来研究连接时的几种情况。 交叉连接 交叉连接时,不使用任何 阅读全文
posted @ 2020-12-08 16:51 Tracydzf 阅读(279) 评论(0) 推荐(0) 编辑
摘要:from from的两种常用方式: SELECT col1,col2 FROM 表; -- 查询指定列 SELECT * FROM 表; -- 全表查询,不要在生产中使用,性能太差 一般在生产中,select语句不加where语句是不允许通过的。 在查询中也可以使用四则运算: SELECT popu 阅读全文
posted @ 2020-12-08 16:22 Tracydzf 阅读(167) 评论(0) 推荐(0) 编辑
摘要:一、需求背景 万恶的产品经理,在不同场景有不同的排序需求,有时候根据字段 0 1 2 升序 ,有时候又是1 2 0 这样排序,重点是还要分页,就无法使用代码去实现排序,只能用纯sql语句。 假设现在有一个订单表,表里有个字段为pay_status,0为未支付,1为已支付,2为支付失败 如果按照 支付 阅读全文
posted @ 2020-12-08 15:36 Tracydzf 阅读(497) 评论(0) 推荐(0) 编辑
摘要:MySQL自带的数据库 先来看MySQL中自带的库有哪些: 各库解释如下: information_schema,虚拟库,不占用磁盘空间,存储的是数据库启动后的一些参数,如用户表信息、列信息、权限信息、字符信息等。 performance_schema, MySQL 5.5开始新增一个数据库,主要用 阅读全文
posted @ 2020-12-07 17:57 Tracydzf 阅读(391) 评论(0) 推荐(0) 编辑
摘要:连接 MySQL提供了两种连接方式: TCP/IP方式(本地、远程): mysql -uroot -p123 -h 10.0.0.1 -P330 Socket方式(仅本地) mysql -uroot -p123 -S /tmp/mysql.sock 当我们本地连接MySQL的时候,默认用的是sock 阅读全文
posted @ 2020-12-07 17:05 Tracydzf 阅读(62) 评论(0) 推荐(0) 编辑
摘要:数据量大的情况下,不同的SQL语句,消耗的时间相差很大。按下面方法可以提高查询的效果。 1. select子句中尽量避免使用* 2. where子句比较符号左侧避免函数 3.尽量避免使用or 4.使用limit子句限制返回的数据行数 阅读全文
posted @ 2020-11-21 22:54 Tracydzf 阅读(217) 评论(0) 推荐(0) 编辑
摘要:分组与聚合通常是分析数据的一种方式,通常与一些统计函数一起使用,查看数据的分组情况 想一想其实刚才的交叉表与透视表也有分组的功能,所以算是分组的一种形式,只不过他们主要是计算次数或者计算比例!!看其中的效果 1 什么分组与聚合 2 分组API DataFrame.groupby(key, as_in 阅读全文
posted @ 2020-08-27 22:24 Tracydzf 阅读(191) 评论(0) 推荐(0) 编辑
摘要:【题目】 “雇员表“中记录了员工的信息,“薪水表“中记录了对应员工发放的薪水。两表通过“雇员编号”关联。 查找当前所有雇员入职以来的薪水涨幅,给出雇员编号以及其对应的薪水涨幅,并按照薪水涨幅进行升序。 (注:薪水表中结束日期为2004-01-01的才是当前员工,否则是已离职员工) 【解题思路】 要求 阅读全文
posted @ 2020-08-27 21:55 Tracydzf 阅读(187) 评论(0) 推荐(0) 编辑
摘要:【题目】 下面是学生的名单,表名为“学生表”;近视学生的名单,表名为“近视学生表”。请问不是近视眼的学生都有谁? (“学生表”表中的学号与“近视学生”表中的学生学号一一对应) 【解题思路】 1.我们先来拆解问题:不是近视眼的学生都有谁? 1)“不是近视眼”的学生,近视信息在“近视学生”表里 2) “ 阅读全文
posted @ 2020-08-27 20:06 Tracydzf 阅读(347) 评论(0) 推荐(0) 编辑
摘要:【题目】 现在有两个表,“学生表”记录了学生的基本信息,有“学号”、“姓名”。 “成绩”表记录了学生选修的课程,以及对应课程的成绩。 这两个表通过“学号”进行关联。 现在要查找出所有学生的学号,姓名,课程和成绩。 【解题思路】 1.确定查询结果 题目要求查询所有学生的姓名,学号,课程和成绩信息 se 阅读全文
posted @ 2020-08-27 19:42 Tracydzf 阅读(546) 评论(0) 推荐(0) 编辑
摘要:【题目】 现在有“课程表”,记录了学生选修课程的名称以及成绩。 现在需要找出语文课中成绩第二高的学生成绩。如果不存在第二高成绩的学生,那么查询应返回 null。 【解题思路】 1.找出所有选修了“语文”课的学生成绩 select * from 成绩表 where 课程='语文'; 2.查找语文课程成 阅读全文
posted @ 2020-08-26 22:45 Tracydzf 阅读(242) 评论(0) 推荐(0) 编辑

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