数据库
斗者_2013
多年java老兵,专注微服务,中间件等热点技术,分享工作心得和技术干货
展开
-
mysql中文全文检索从入门到放弃
背景中文全文检索实战坑放弃原创 2020-06-17 22:47:46 · 1984 阅读 · 3 评论 -
数据库连接池大小设置,你学会了吗
微信公众号:跟着老万学java关注可了解更多的开发技巧。问题或建议,请公众号留言;背景工作这么多年,数据库连接池用了很久了,但是前几天突然被同事问到:“数据库连接池的大小怎么配?”,突然感觉心里慌的一逼,作为这么多年编程经验的老鸟,绝逼不能承认说自己不会,只能淡定的说:测试环境并发少,巴拉巴拉……,所以可以配置少点;生产环境并发高,所以数据库连接池的连接数要配置的多点。然后在小弟崇拜...原创 2020-04-27 23:14:17 · 1390 阅读 · 0 评论 -
Mysql 的InnoDB引擎下支持hash索引吗?
Mysql 的InnoDB引擎下支持hash索引吗?什么,这个不是很明显支持的吗?还总是被面试官问到hash索引的btree索引有什么区别?那么真的支持吗?场景很多人可能在使用Navicat给表创建索引时会发现,索引方法中支持BTREE和HASH乍一看,很多人的第一反应是,这不是支持hash索引吗?实践那么我们来实践一下。CREATETABLE...原创 2020-04-19 16:54:07 · 3034 阅读 · 1 评论 -
oracle重建索引
一:考虑重建索引的场合1:表上频繁发生update,delete操作2:表上发生了alter table ..move操作(move操作导致了rowid变化)二:判断重建索引的标准 索引重建是否有必要,一般看索引是否倾斜的严重,是否浪费了空间; 那应该如何才可以判断索引是否倾斜的严重,是否浪费了空间,如下:1, 对索引进行结构分析Ana转载 2016-02-17 15:24:39 · 905 阅读 · 0 评论 -
Oracle中游标表达式Cursor操作符的运用
游标表达式:用cursor操作符表示,返回的是一个嵌套在查询语句中游标。 语法: cursor (subquery子查询)(Oracle9i后才能使用,不过用的很少,而且不够清晰简洁,尽量别使用)使用场合:1. 显示游标声明2. 动态sql查询3. Ref cursor声明和变量。但是不能把游标表达式用于隐式查询。 二种使用转载 2015-10-23 17:45:27 · 1911 阅读 · 0 评论 -
PL/SQL Developer中转换大小写工具
工具 → 首选项 选择相应的功能按钮 添加到工具板面输入是,对于关键字自动转换成大写 设置方法如下:转载 2015-09-22 10:41:23 · 1621 阅读 · 0 评论 -
Oracle用户和模式的区别
Oracle用户是Oracle数据库中的重要概念,下面就为您介绍Oracle用户和模式的区别,希望对您学习Oracle用户方面能够有所帮助。(一)什么Oracle叫用户(user):A user is a name defined in the database that can connect to and access objects.Oracle用户是用连接数据库和访问数据库转载 2015-10-21 23:21:41 · 418 阅读 · 0 评论 -
ORACLE临时表总结
临时表概念 临时表就是用来暂时保存临时数据(亦或叫中间数据)的一个数据库对象,它和普通表有些类似,然而又有很大区别。它只能存储在临时表空间,而非用户的表空间。ORACLE临时表是会话或事务级别的,只对当前会话或事务可见。每个会话只能查看和修改自己的数据。 临时表语法 临时表分类 ORACLE临时表有两种类型:会话级的临时表和事务级的临时表。1转载 2015-10-19 16:19:43 · 384 阅读 · 0 评论 -
oracle定制定时执行任务
1.引言定制定时执行的任务有两种形式,系统级别和数据库级别,从操作系统级别来讲,windows系统我们可以使用任务计划来实现,对于winXP系统,设置步骤如下,开始---设置---控制面板---任务计划,然后添加任务计划,按向导完成配置即可;对于win7系统,设置步骤如下,点击开始,然后在 搜索程序和文件 框中输入 [任务计划],然后点击出来的任务计划程序,创建一个基本任务即可转载 2015-09-15 14:58:09 · 574 阅读 · 0 评论 -
Oracle安装临时客户端使用总结
由于把oracle 11g全部装在机器上,导致机器太卡,于是卸载oracle装上客户端,果然效果明显。首先要去官网上下载oracle 11客户端,(我用的是64位系统)地址:http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html下载:instantclient-basic-...原创 2016-05-13 18:05:32 · 1645 阅读 · 0 评论 -
数据库表分割技术浅析(水平分割/垂直分割/库表散列)
数据库表分割技术包含以下内容:水平分割/垂直分割/库表散列.接下来将对以上分割进行详细介绍,感兴趣的朋友可以了解下,对你日后维护数据库是很有帮助的一.水平分割 什么是水平分割?打个比较形象的比喻,在食堂吃饭的时候,只有一个窗口,排队打饭的队伍太长了,都排成S型了,这时容易让排队的人产生焦虑情绪,容易产生混乱,这时一个管理者站出来,增加多个打饭窗口,把那条长长的队伍拦腰截断成几队转载 2016-05-17 10:15:57 · 530 阅读 · 0 评论 -
oracle-行转列点评oracle11g sql新功能pivot/unpivot
http://hi.baidu.com/yyfangzong/item/01e5bbe8323d180965db00ed摘要:(简要介绍Oracle11g SQL的新功能 pivot/unpivot 的使用方法以及如何使用它们做到行列转换. 蓄势以久的Oracle 11g 终于七月敲锣打鼓隆重推出,接下来就是网上漫天盖地的新功能介绍。11g面向开发的新功能本来就不多,掰着手指转载 2016-08-04 19:49:18 · 1085 阅读 · 0 评论 -
mysql覆盖索引详解——like模糊全匹配中使用索引
原文地址如果一个索引包含(或覆盖)所有需要查询的字段的值,称为‘覆盖索引’。即只需扫描索引而无须回表。只扫描索引而无需回表的优点:1.索引条目通常远小于数据行大小,只需要读取索引,则mysql会极大地减少数据访问量。2.因为索引是按照列值顺序存储的,所以对于IO密集的范围查找会比随机从磁盘读取每一行数据的IO少很多。3.一些存储引擎如myisam在内存中只缓存索引,数据则依赖于操作系统来...原创 2019-05-06 16:40:48 · 8074 阅读 · 13 评论 -
mysql中left join的误解及笛卡尔积解释
首先,说下自己一直以来的误区:left join(左外连接)查询,已左表A为基础表,关联右表B查询,最多只会返回A表里面满足条件的记录。这种想法是错误的,返回的记录条数和两表的关联条件有关。比如:select A.id,A.name,B.id,B.name from A left join B on A.name = B.name 如果name在关联表B中不是...原创 2019-05-20 16:19:26 · 16605 阅读 · 12 评论 -
mysql使用脚本定时进行数据热备份
按照数据库状态划分热备热备份(Hot Backup)是指在数据库运行中直接备份,对正在运行的数据库没有任何影响。冷备冷备份(Cold Backup)是指在数据库停止的情况下进行备份,这种备份最为简单,一般只需要拷贝相关的数据库物理文件即可(由于要在数据库停止的情况下进行备份,所以一般用的非常少)冷备份的优点:1.是非常快速的备份方法(只需拷贝文件)2.容易归档(简单拷贝即可)3....原创 2019-05-17 11:52:29 · 1545 阅读 · 5 评论 -
mysqldump定时任务生成备份文件内容为空解决方法
mysqldump定时任务生成备份文件内容为空解决方法2018年05月25日 09:54:13 黄如果 阅读数:20791问题:写好了一个mysqldump备份脚本(如图)直接执行可以正常生成备份文件,但在用crontab运行时却生成内容为空2原因分析:由于mysqldump存在于全局环境变量mysql的bin下面,故在直接运行时可以识别到mysqldump命令,而在crontab里面无法...转载 2019-05-22 20:02:32 · 3190 阅读 · 0 评论 -
Oracle游标的使用
一、游标的相关概念及特性 1.定义 映射在结果集中某一行数据的具体位置,类似于C语言中的指针。即通过游标方式定位到结果集中某个特定的行,然后根据业务需求对该行进行相应特定的操作。 2.游标的分类 在Oracel中,游标可以分为两大类:静态游标 和 REF游标(动态游标)。REF游标是一种引用类型,类似于指针。而静态游标又分为显式游标和隐式转载 2015-09-15 14:45:00 · 565 阅读 · 0 评论 -
Oracle中in和exists的区别
项目中对数据库的查询操作很多,各种拼接,各种in,但由于in的内容受字符限制,所以有些地方将in改成了Extist,两种写法有什么关联,查了写资料,分析看看:in和exists in 是把外表和内表作hash 连接,而exists是对外表作loop循环,每次loop循环再对内表进行查询。一直以来认为exists比in效率高的说法是不准确的。 如果查询的两个表大小相当,那么用in和exi转载 2015-09-15 14:34:36 · 796 阅读 · 0 评论 -
Oracle递归查询
创建表 建表语句:CREATE TABLE SC_DISTRICT( ID NUMBER(10) NOT NULL, PARENT_ID NUMBER(10), NAME VARCHAR2(255 BYTE) NOT NULL);ALTER TABLE SC_DISTRICT ADD (转载 2015-10-16 14:30:32 · 650 阅读 · 0 评论 -
Oracle数据库、实例、用户、表空间、表之间的关系
基础概念:Oracle数据库、实例、用户、表空间、表之间的关系数据库:Oracle数据库是数据的物理存储。这就包括(数据文件ORA或者DBF、控制文件、联机日志、参数文件)。其实Oracle数据库的概念和其它数据库不一样,这里的数据库是一个操作系统只有一个库。可以看作是Oracle就只有一个大数据库。实例: 一个Oracle实例(Oracle Instance)有一系列的转载 2015-04-04 20:16:37 · 746 阅读 · 0 评论 -
Oracle数据库PL/SQL学习笔记——函数定义
小技巧:如果在sql window窗口下创建函数,但是创建的函数一直是无效函数(有个小红叉),那么可以再新建 -》program window-》 function 窗口中重写创建函数,这里面有相信的错误信息--事务作用域 /*是执行线程 ——进程,当连接至Oracle 11g数据库时,建立一个会话,在会话中做的任何事只有自己可见,直到提交操作完成,原创 2015-04-18 22:11:48 · 824 阅读 · 0 评论 -
Oracle数据库PL/SQL学习笔记二——基础控制语句
--简单的if判断begin if &var > 10 and &var <= 50 then dbms_output.put_line('输入值大于10'); elsif &var > 50 then dbms_output.put_line('输入值大于50'); else dbms_output.put_line('不原创 2015-04-18 21:59:27 · 654 阅读 · 0 评论 -
Oracle数据库学习笔记四——存储过程的值传递和引用传递
编程语言中的4种子例程:由两种行为定义,即形式值是否返回以及参数列表是值传递还是引用传递。如果返回输出,子例程就是函数,如果不返回,就是过程。所以4中子例程为:1.值传递函数2.引用传递函数3.值传递过程4.引用传递过程pl/sql值传递过程由下列5条规则定义:1.所有形参必须使用in模式定义为只写变量。(只能传入,不能传出)2.所有形参必须是局部作原创 2015-04-18 22:21:40 · 3016 阅读 · 0 评论 -
Oracle数据库PL/SQL学习笔记(一)
Oracel数据库的基本管理:create tablespace test datafile 'E:\app\Administrator\oradata\orcl\test.dbf' --注意:名称test不要带引号size 100Mautoextend on next 2M maxsize 2048Mextent management local; --默认是原创 2015-04-18 21:47:30 · 728 阅读 · 0 评论 -
Oracle数据库PL/SQL学习笔记三——复合数据的定义
--自定义记录recorddeclare type demo_record_type is record( id number default 1, value varchar2(10) := 'one' ); demo demo_record_type;begin dbms_output.put_line('['||demo.id||']['||dem原创 2015-04-18 22:04:26 · 601 阅读 · 0 评论 -
ORACLE优化器RBO与CBO介绍总结
ORACLE优化器RBO与CBO介绍总结2014-07-14 10:38 by 潇湘隐者, 1821 阅读, 4 评论, 收藏, 编辑RBO和CBO的基本概念Oracle数据库中的优化器又叫查询优化器(Query Optimizer)。它是SQL分析和执行的优化工具,它负责生成、制定SQL的执行计划。Oracle的优化器有两种,基于规则的优化器(RBO)与基于代转载 2015-04-06 22:03:16 · 1758 阅读 · 0 评论 -
sql优化总结
要提高SQL查询效率where语句条件的先后次序应如何写分类: SQL2010-03-04 12:17 2099人阅读 评论(0) 收藏 举报sqloracletransactionsbuffer优化数据库我们要做到不但会写SQL,还要做到写出性能优良的SQL语句。(1)选择最有效率的表名顺序(只在基于规则的优化器中有效): Oracle的解析器转载 2015-04-06 21:17:40 · 488 阅读 · 0 评论 -
oracle 视图创建和操作,创建简单,复杂的视图,创建基表不存在的视图,视图增删改,查看视图的结构
视图的概念 视图是基于一张表或多张表或另外一个视图的逻辑表。视图不同于表,视图本身不包含任何数据。表是实际独立存在的实体,是用于存储数据的基本结构。而视图只是一种定义,对应一个查询语句。视图的数据都来自于某些表,这些表被称为基表。通过视图来查看表,就像是从不同的角度来观察一个(或多个)表。 视图有如下一些优点: * 可以提高数据访问的安全性,通过视图往往只可以访问数据库中表转载 2015-04-21 23:51:58 · 1239 阅读 · 0 评论 -
ORACLE 创建作业JOB例子
--1.plsql中学习job --学习job--建表 create table test_job(para_date date); commit; insert into test_jobvalues(sysdate); commit; select * from test_job;--建立存贮过程create转载 2015-05-13 10:33:10 · 3159 阅读 · 0 评论 -
Oracle 中count(1) 和count(*) 的区别
count(1)与count(*)比较: 如果你的数据表没有主键,那么count(1)比count(*)快 如果有主键的话,那主键(联合主键)作为count的条件也比count(*)要快 如果你的表只有一个字段的话那count(*)就是最快的啦 count(*) count(1) 两者比较。主要还是要count(1)所相对应的数据字段。 如果count(1)是聚索引,id,那肯定是co转载 2015-07-09 10:57:27 · 720 阅读 · 0 评论 -
ORACLE最大连接数问题
用过Oracle的应该都熟悉如何查看和设置Oracle数据库的最大连接数。这里就再啰嗦一遍。查看当前的连接数,可以用select count(*) from v$process;设置的最大连接数(默认值为150)select value from v$parameter where name = ‘processes';修改最大连接数alter system set proce转载 2015-08-11 14:35:46 · 899 阅读 · 0 评论 -
ORACLE索引介绍和使用
1.什么是索引? 索引是建立在表的一列或多个列上的辅助对象,目的是加快访问表中的数据; Oracle存储索引的数据结构是B*树(平衡树),位图索引也是如此,只不过是叶子节点不同B*数索引; 索引由根节点、分支节点和叶子节点组成,上级索引块包含下级索引块的索引数据,叶节点包含索引数据和确定行实际位置的rowid。2.使用索引的目的: 加快查询速度 减少I/O操作转载 2015-09-29 20:47:07 · 9499 阅读 · 0 评论 -
实现秒杀的几个想法(续)
秒杀一般有几个场景:1.电商秒杀商品2.抢红包3.抢票假设一个场景如下: 某电商公司搞活动,一折秒杀,推出几种秒杀的商品,每种商品1000个,预计100w人抢购要求: 不能超卖.绝对不可以卖多了. 数据库要扣减库存,并且记录订单明细.难点分析1.不能阻塞.海量的请求就像血栓一样,遍走周身,一旦遇到瓶颈,就会堵塞整个血管.所以转载 2015-09-29 20:58:11 · 502 阅读 · 0 评论 -
sql语句优化
sql语句优化 性能不理想的系统中除了一部分是因为应用程序的负载确实超过了服务器的实际处理能力外,更多的是因为系统存在大量的SQL语句需要优化。为了获得稳定的执行性能,SQL语句越简单越好。对复杂的SQL语句,要设法对之进行简化。常见的简化规则如下: 1)不要有超过5个以上的表连接(JOIN)2)考虑使用临时表或表变量存放中间结果。3)少用子查询4)转载 2014-05-20 11:17:06 · 596 阅读 · 0 评论