
数据库
文章平均质量分 79
MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。
午夜.幽魂.男
每个优秀的人,都有一段沉默的时光,那段时光是付出了很多努力,却得不到结果的日子,我们把它叫做扎根。
展开
-
索引法则--LIKE以%开头会导致索引失效进而转向全表扫描(使用覆盖索引解决)
1 准备数据1.1 建表DROP TABLE IF EXISTS staff;CREATE TABLE IF NOT EXISTS staff (id INT PRIMARY KEY auto_increment,name VARCHAR(50),age INT,pos VARCHAR(50) COMMENT ‘职位’,salary DECIMAL(10,2));1.2 插入数据INSERT INTO staff(name, age, pos, salary) VALUES(‘Alic转载 2021-12-28 10:21:18 · 1140 阅读 · 0 评论 -
oracle 复杂查询(1)
--69 查询emp和dept表,产生笛卡尔积(多表行相乘)select * from emp, dept;--70 加where条件过滤查询emp和dept表产生的笛卡尔积select * from emp, dept where emp.deptno = dept.deptno;--71 查询emp和dept表,产生笛卡尔积(多表行相乘),并为表取别名select * from emp e, dept d;--72 查询雇员姓名,所在部门编号和名称select e.ename,原创 2020-07-01 16:09:51 · 311 阅读 · 0 评论 -
Oracle基础——单行函数练习(一)
--1.查询部门30中的所有员工信息select * from emp where deptno = 30;--2. 列出所有办事员(CLERK)的姓名,编号和部门编号select ename, empno, deptno from emp where job = 'CLERK';--3. 找出奖金高于薪金的员工信息select * from emp where comm > sal;--4. 找出奖金高于薪金的60%的员工信息select * from emp where c原创 2020-07-01 10:58:24 · 259 阅读 · 0 评论 -
MySQL 流式查询
大数据量查询容易OOM?试试MySQL流式查询一、前言程序访问MySQL数据库时,当查询出来的数据量特别大时,数据库驱动把加载到的数据全部加载到内存里,就有可能会导致内存溢出(OOM)。其实在MySQL数据库中提供了流式查询,允许把符合条件的数据分批一部分一部分地加载到内存中,可以有效避免OOM;本文主要介绍如何使用流式查询并对比普通查询进行性能测试。二、JDBC实现流式查询使用JDBC的PreparedStatement/Statement的setFetchSize方法设置为 Integer.MI原创 2021-08-10 17:24:21 · 3873 阅读 · 0 评论 -
MySQL 报错> 1055 -Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggregated c
select * from V$NLS_PARAMETERSNLS_LANG=“SIMPLIFIED CHINESE_CHINA.ZHS16GBK”select * from V$NLS_PARAMETERS步骤二:在环境变量中添加两条配置信息,鼠标右键我的电脑(计算机/此电脑)等图标,选择属性,选择高级系统设置,选择高级选项卡的环境变量,在系统变量里新建两条配置:1、LANG=zh_CN.GBK(GBK是这样形式的,不同编码这里的value值需要跟着改变)2、NLS_LANG=AMERIC原创 2020-06-30 18:37:03 · 1549 阅读 · 0 评论 -
Oracle和MySQL区别 utf8mb4
1、mysql可以没有from,oracle必须有,可以写成from dual;2、mysql使用concat()函数连接字符串,oracle不仅有concat()函数,还可以使用||;3、mysql没有全外连接,使用集合连接代替,oracle有全外连接,而且左右外连接有自己的语法:(+);4、mysql分页使用limit,oracle分页得借助rownum关键字;5、mysql自动增长auto_increment,oracle使用序列代替;6、mysql直接书写循环判断语句,oracle得借助P原创 2020-06-01 09:26:23 · 1352 阅读 · 0 评论 -
SQL 分组
有两张表 table1 和 table2 ; table1 记录公司员工信息, 包括编号(ID) , 姓名 (Name) 和生日(Birthday) , table2 记录员共销售金额 (每个员工对应多条销售记录) , 包括编号(ID) 和 销售金额(Money_sale).问题: 请查找生日为1970/1/1至 1980/1/1 之间的每个员工销售总额,并按照生日大小的降序排列.table1...原创 2019-10-18 22:39:51 · 1102 阅读 · 0 评论 -
resultMap和resultType的区别
mybatis中resultMap和resultType的区别mybatis中在查询进行select映射的时候,返回类型可以用resultType,也可以用resultMap。resultType直接表示返回类型的;resultMap:对外部resultMap的引用;不能同时存在public class User { private int id; private String ...原创 2019-09-22 00:19:36 · 1044 阅读 · 0 评论 -
sql limit优化
语法limit [offset,] rows,从结果集中拿出特定的一部分数据。offset是偏移量,表示我们现在需要的数据是跳过多少行数据之后的,可以忽略;rows表示我们现在要拿多少行数据。优化select * from mytbl limit 10000,100上边SQL语句表示从表mytbl中拿数据,跳过10000行之后,拿100行。偏移量较大时,使用子查询。示例select...原创 2019-08-29 19:30:18 · 518 阅读 · 0 评论 -
mysql 慢SQL优化
使用explain进行分析Explain 用来分析 SELECT 查询语句,开发人员可以通过分析 Explain 结果来优化查询语句。比较重要的字段有:select_type : 查询类型有:简单查询、联合查询、子查询等key : 使用的索引rows : 扫描的行数优化数据访问减少请求的数据量只返回必要的列,必要的行,缓存重复查询的数据减少服务器端扫描的行数。使用索...原创 2019-08-28 02:05:05 · 196 阅读 · 0 评论 -
mysql 5.7安装步骤 数据结构
utf-8 一个汉字=3个字节gbk 一个汉字为2个字节如果定义了varchar长度为32,那就说明你可以存储32个字符或者32个英文。mysql忽略具体的存储细节,但是数据库将数据存储到硬盘上的时候肯定是以(字节)的方式去存储,那么占用的空间会根据编码格式32×3或32×2这种去存储。...原创 2019-08-24 18:39:44 · 367 阅读 · 1 评论 -
SQL 分类、执行顺序
SQL语法顺序和执行顺序转载 2019-06-26 17:32:47 · 168 阅读 · 0 评论 -
mysql decimal类型
mysql记录货币字段介绍DECIMAL adj. 小数的;十进位的 n. 小数开发中,货币在数据库中MySQL常用Decimal和Numric类型表示,这两种类型被MySQL实现为同样的类型。他们被用于保存值,该值的准确精度是极其重要的值,例如与金钱有关的数据。当声明一个类是这些类型之一时,精度和规模的能被(并且通常是)指定;例如:salary DECIMAL(9,2)在这个例子中,9...原创 2019-06-28 10:37:31 · 1267 阅读 · 0 评论 -
mysql 四大特征、事务隔离级别
事务及事务的四大特征1. 事务是什么事务是应用程序中一些列严密的操作,所有的操作必须成功完成,否则在每个操作中所做的所有更改都还被撤销。也就是事务具有原子性,一个十五中的一系列的操作要么全部成功,要么一个都不做。2. 事务的四大特性Atomicity 原子性 :整个事务中的所有操作,要么全部完成,要么全部不完成,不可能停滞在中间某个环节。事务在执行过程中发生错误,会被回滚 rollba...原创 2019-07-18 09:55:45 · 233 阅读 · 0 评论 -
Java中的锁
乐观锁总是假设最好的情况get操作时,不会有update操作get操作时,不会上锁update操作时,判断有没有其他update操作。可以用版本号机制和CASget操作频繁时,使用乐观锁,可以提高吞吐量。在Java中java.util.concurrent.atomic包下的原子变量类使用数据版本表示数据(时间戳,版本号)悲观锁总是假设最坏情况,get操作时 , 同时会有u...原创 2019-08-13 20:59:48 · 144 阅读 · 0 评论 -
MyIASM 和 innodb区别
MyIASM是非事务安全的,而InnoDB是事务安全的MyIASM锁的粒度是表级的,而InnoDB支持行级锁MyIASM支持全文类型索引,而InnoDB不支持全文索引MyIASM相对简单,效率上要优于InnoDB,小型应用可以考虑使用MyIASMMyIASM表保存成文件形式,跨平台使用更加方便应用场景:1、MyIASM管理非事务表,提供高速存储和检索以及全文搜索...原创 2019-08-19 22:21:45 · 137 阅读 · 0 评论 -
mysql 事务
锁就是防止其他事务访问指定资源的手段。锁是实现并发控制的主要方法,是多个用户能够同时操纵同一个数据库中的数据而不发生数据不一致现象的重要保障。一般来说,锁可以防止脏读、不可重复读和幻读。1.脏读(Dirty Read)——一个事务读取到了另外一个事务没有提交的数据。详细解释:当一个事务正在访问数据并且对数据进行了修改,而这种修改还没有提交到数据库中,这时另外一个事务也访问这个数据,然...原创 2019-08-14 22:37:34 · 80 阅读 · 0 评论 -
mysql 索引优化
索引的建立经常搜索的列上作为主键的列 id用于连接的列,主要是一些外键,可以加快连接的速度 on需要根据范围进行搜索的列上 where需要排序的列上 order by经常使用where子句的列上...原创 2019-08-20 01:41:47 · 209 阅读 · 0 评论 -
mysql 平衡二叉树、B树、B+树详解
m阶的B树定义如下:最多含有m个孩子(m>=2)最少含有ceil(m/2) ceil(x) 去上限的意思。若根节点不是叶子节点,则至少有2个孩子所有叶子节点都出现在同一层非终端节点中包含n个关键字信息。查找 : 类似与二叉排序树 的查找。B+树的有点:内部节点相对于B树小,查询效率更稳定。...原创 2019-08-20 15:11:25 · 314 阅读 · 0 评论 -
SQL优化
索引的使用顺序 (where后面的顺序) 和 复合索引的顺序一致。原创 2019-06-18 10:50:43 · 210 阅读 · 0 评论