
数据库
tom和cat
知识的搬运工
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
普通索引与唯一性索引
想象这样一个场景,在设计一张用户表时,每人的身份证号是唯一的,需要搜索。但由于身份证号字段较大,不好将其作为主键。在业务代码已经保证插入身份证唯一的情况下,可以选择建立唯一索引和普通普通索引,这时该如何选择呢?接下来,将从查询和更新的执行过程进行分析。Top查询过程假设 k 是表 t 上的索引,在搜索 select id from t where k=5 时,会先从 k 这棵 B+ 的树根开始,按层搜索叶子节点,找到 k=5 的数据页,然后在数据页内容进行二分法定位。对于普通索引,找到 k=转载 2020-09-01 09:34:20 · 1382 阅读 · 0 评论 -
mysql学习
一、MySQL基本架构二、MySQL查询过程MySQL查询过程如下:客户端将查询发送到MySQL服务器 服务器先检查查询缓存,如果命中,立即返回缓存中的结果;否则进入下一阶段 服务器对SQL进行解析、预处理,再由优化器生成对象的执行计划 MySQL根据优化器生成的执行计划,调用存储引擎API来执行查询 服务器将结果返回给客户端,同时缓存查询结果 三、执行计划...原创 2019-03-16 15:14:22 · 196 阅读 · 0 评论 -
MySQL优化概述(索引优化,sql优化,表优化)
MySQL优化概述MySQL数据库常见的两个瓶颈是:CPU和I/O的瓶颈。CPU在饱和的时候一般发生在数据装入内存或从磁盘上读取数据时候。磁盘I/O瓶颈发生在装入数据远大于内存容量的时候,如果应用分布在网络上,那么查询量相当大的时候那么平瓶颈就会出现在网络上。我们可以用mpstat, iostat, sar和vmstat来查看系统的性能状态。除了服务器硬件的性能瓶颈,对于MySQL...转载 2018-09-23 18:55:54 · 175 阅读 · 0 评论 -
mysql的索引使用选择
建立索引表的主键、外键必须有索引; 数据量超过300的表应该有索引; 经常与其他表进行连接的表,在连接字段上应该建立索引; 经常出现在Where子句中的字段,特别是大表的字段,应该建立索引; 索引应该建在选择性高的字段上; 索引应该建在小字段上,对于大的文本字段甚至超长字段,不要建索引; 频繁进行数据操作的表,不要建立太多的索引;索引失效字符串不加单引号 将要使用的索引列不...原创 2018-09-23 18:54:17 · 1669 阅读 · 0 评论 -
MySQL设置锁、事务隔离级别的常用命令
锁1、查看表锁, Table_locks_waited较高表明锁争用比较严重 show status like 'table%' 2、查看行锁,Innodb_row_lock_waits和InnoDB_row_lock_time_avg较高表明锁争用比较严重 show status like 'innodb_row_lock%' 3、加写表锁(需手动uncl...原创 2018-07-27 18:02:38 · 247 阅读 · 0 评论 -
sql中 ${}和#{}的区别
<span style="font-size:18px;">delete from ups_role_permission_dataparams where role_id = #{roleId,jdbcType=INTEGER}</span> 123在这里用到了#{},使用#时:1、用来传入参数,sql在解析的时候会加上” “,当成字符串来解析 ...转载 2018-05-28 13:43:54 · 1291 阅读 · 0 评论 -
深入理解where 1=1的用处
本文主要参考 http://bbs.youkuaiyun.com/topics/310082591 和 http://www.jb51.net/article/38062.htm现在进入正题:加入where 1=1,既是where 的条件成立,为永真,得到的结果就是未加约束条件的。为了动态SQL中连接and条件。where后面总要有语句,加上了1=1后就可以保证语法不会出错! 假如后面确定有条件语句,就可...转载 2018-04-12 12:14:41 · 1315 阅读 · 0 评论 -
MySQL和oracle在开发中的区别
仅从程序员开发的角度来说:1.主键:mysql一般会用到一个自增的属性,例如设置一个id字段,类型设置为auto increment;oracle没有自动增长类型,可以使用序列。在实际中,一般会使用自己的定义的主键,可以代表某些实际意义的,上述可以作为物理主键,不具有任何实际意义。2.分页处理:mysql在分页查询上相对比较容易,使用limit关键字,例如:selecct转载 2017-12-08 09:38:25 · 671 阅读 · 0 评论 -
oracle性能优化建议
(1)连接查询的表顺序在CBO模式下,当对多个表进行连接查询的时候,Oracle分析器会按照从右到左的顺序处理from字句中的表名例如,下面会先查询deptselect a.empno,b.ename,c.dnamefrom emp_log a ,emp b,dept c在执行时,Oracle会先查询dept表,根据dept表查询到行作为数据源串行连接emp表继续执行,因此d原创 2017-12-07 16:38:36 · 4478 阅读 · 0 评论 -
Oracle中的SQL分页查询原理和方法详解 (转)
转载请注明出处:http://blog.youkuaiyun.com/anxpp/article/details/51534006,谢谢! 本文分析并介绍Oracle中的分页查找的方法。 Oracle中的表,除了我们建表时设计的各个字段,其实还有两个字段(此处只介绍2个),分别是ROWID(行标示符)和ROWNUM(行号),即使我们使用DESCRIBE命令查看表的结构,也是看不到这转载 2017-12-07 15:29:35 · 333 阅读 · 0 评论 -
oracle操作字符串:拼接、替换、截取、查找(修改版)
1、拼接字符串1)可以使用“||”来拼接字符串1 select '拼接'||'字符串' as str from dual 2)通过concat()函数实现1 select concat('拼接', '字符串') as str from dual 注:oracle的concat函数只支持两个参数的方法,即只能拼接两个参数,如要拼接多个参数则嵌套使用concat可实原创 2017-12-07 09:17:15 · 2058 阅读 · 0 评论 -
数据库drop、truncate和delete的用法
一、SQL中的语法 1、drop table 表名称 eg: drop table dbo.Sys_Test 2、truncate table 表名称 eg: truncate table dbo.Sys_Test 3、delete from 表名转载 2017-12-07 08:49:15 · 8870 阅读 · 0 评论 -
sql server,mysql,Oracle三者的区别
SQL Server,MySQL,Oracle三者的区别OracleOracle 能在所有主流平台上运行(包括Windows)。完全支持所有的工业标准。采用完全开放策略。可以使客户选择最适合的解决方案。对开发商全力支持,Oracle并行服务器通过使一组结点共享同一簇中的工作来扩展Windows NT的能力,提供高可用性和高伸缩性的簇的解决方案。如果Windows NT不能满足需要,用户转载 2017-12-05 19:30:12 · 2642 阅读 · 1 评论 -
oracle中的greatest 函数和 least函数
greatest (max(one),max(two),max(three))求多列的最大值,oracle中的greatest 函数已知表TB的数据如下 SQL> select * from tb; ID CHINESE MATH ENGLISH---------- ---------- ---------- ----------转载 2017-12-12 09:01:29 · 15790 阅读 · 1 评论 -
oracle除数为0时的解决方法(decode的使用)
decode(除数,0,显示0%,不为零的正常表达式)代替原来那个有可能出0除报错的表达式解决:select decode(b,0,0,a/b*100) per from aa;(1)decode的含义含义解释:decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值)该函数的含义如下:IF 条件=值1 THEN RETURN(...转载 2017-11-28 14:09:28 · 23025 阅读 · 0 评论