![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据库
唯一本尊
真正的勇士敢于直面惨淡的人生
展开
-
Oracle SQL查询语句转mysql
-- 增加自增属性alter table tpl MODIFY tpl_id int not null auto_increment;-- 当前时间获取sysdate --》 sysdate()-- nvl函数去掉-- 存在加后缀@CPCDB_LINK的SQL,mysql不存在dblink,mysql使用库名.表名 来实现跨库查询-- 时间函数add_months()函数 --》ADDDATE()...原创 2018-02-27 16:30:12 · 1692 阅读 · 1 评论 -
Oracle的union,union all ,minus,intersect
最近遇到一种情况,某事物有多种属性(该属性有属性ID和属性值ID),选择属性和属性值,查出对应的list。这里属性ID和属性值ID存在一张表中,所以可以通过每个属性ID和属性值ID可以查询得到一个集合,得到一堆集合后要获得这堆集合ID的交集,该交集为我们需要的list。幸好看到前人代码发现intersect,不然真的无从下手。重点来了:intersect(交集):主要是将查询得到的结果转载 2017-08-23 14:13:23 · 457 阅读 · 0 评论 -
如何定位并优化慢查询SQL以及联合索引和索引多的弊端
以下思路均以Mysql为例,不过SQL调优通用的根据慢日志定位慢查询SQL;使用show variables like ‘%quer%’;主要查看slow_query_log,slow_query_log_file,long_query_time;这三个是主要关注和修改的变量。show status like ‘%slow_queries%’; ——查询慢查询的数量。set global...原创 2019-02-27 12:47:44 · 590 阅读 · 2 评论 -
mysql重装导致本地多个数据库
本人重装mysql,因为之前的绿色安装版残留的原因导致安装完安装版之后不能正常运行,大概说一下过程。 首先 mysqld --remove —— mysqld --initialize-insecure——mysqld --install ;之后server文件中出现了data文件夹,之后不知道初始密码是啥,推荐个重置密码的方法——https://www.cnblogs.com/green...原创 2019-02-27 11:59:56 · 244 阅读 · 0 评论 -
简单了解B+树和密集、稀疏索引
B+树是B树的变体,定义基本与B树相同,除了:非叶子节点的子树指针与关键字个数相同;非叶子节点的子树指针P[i],指向关键字值[K[i], K[i+1])的子树,这里必须是小于K[i+1]的,(也有的说是不一定是大于等于K[i]);非叶子节点只用来存储索引,叶子节点才是存储数据的;(也就是说所有的节点都是需要从根节点到叶子节点,B+树也会更矮)所有叶子节点均有一个链指针指向下一个叶子节点...原创 2019-02-26 10:49:57 · 1443 阅读 · 0 评论 -
如何设计一个关系型数据库 and B树简单了解
首先,分为存储(文件系统)和程序实例两大部分。程序实例划分存储管理模块:将数据的逻辑关系转换成为物理存储关系。缓存机制模块:优化执行效率。SQL解析模块:解析SQL语句。日志管理模块:记录操作日志。权限划分模块:进行多用户管理。容灾机制模块:灾难恢复。索引管理模块:优化数据查询效率。锁管理模块:使得数据库支持并发操作。缓存不宜过大,应该要有淘汰优化算法。数据库的重点是索引...原创 2019-02-26 08:59:59 · 475 阅读 · 0 评论 -
数据库事务的四大特性 以及事务并发引起的问题
ACID原子性(Atomic):事务包含的所有操作,要么全做,要么全不做回滚;一致性(Consistency):从一个一致状态到另一个一致状态;eg:A、B之间转账,两者的金额总和转账前后必须相同。隔离性(Isolation):多个事务并发执行时,不会相互影响。持久性(Durability):一个事务一旦修改,它对数据库的修改应该永久存在数据库中。事务隔离事务并发引起的问题以及如何...原创 2019-02-28 08:45:19 · 2145 阅读 · 0 评论 -
MyISAM 和InnoDB 关于锁方面的区别
区别MyISAM默认的用的是表级锁,不支持行级锁。InnoDB默认的是行级锁,也支持表级锁。一般来说,MyISAM 的读锁是共享锁,写锁是排它锁。对表A而言,进程1给表A加了共享锁,进程2只能对表A加共享锁;若进程1加了排它锁,那进程2只能等待进程1解锁后才能查询或加锁。InnoDB采用的是二段锁,即加锁和解锁(commit,数据库默认打开自动提交);但是在非SQL加共享锁时,若没改变...原创 2019-02-27 17:48:13 · 802 阅读 · 0 评论 -
MyISAM 和InnoDB 的区别.(存储,索引, 事务, 锁
MyISAM类型的表强调的是性能,但是不支持事务、及外部键等高级功能。MySQL默认采用的是MyISAM。 MyISAM不支持事务,而InnoDB支持。InnoDB的AUTOCOMMIT默认是打开的,即每条SQL语句会默认被封装成一个事务,自动提交,这样会影响速度,所以最好是把多条SQL语句显示放在begin和commit之间,组成一个事务去提交。 InnoDB支持数据行锁定,MyI...转载 2019-02-27 17:03:20 · 108 阅读 · 0 评论 -
Oracle使用虚拟表dual一次插入多条记录
Oracle使用虚拟表dual一次插入多条记录从一个CSV文件中读取所有的数据,并且插入到一个Oracle数据库中,并且几分钟内完成,大约有60万条。网上有人说了,你可以循环insert然后插入几千条以后Commit一次,我靠,你自己试试看!!如果没试过就不要误导别人好吧。还有人说了,Oracle根本不支持一次多条插入,我靠,你咋不说自己学艺不精呢?现在给大转载 2017-08-24 15:03:33 · 2855 阅读 · 1 评论 -
Oracle模糊查询,foreach用法,树结构查询,group by简单总结
mybatis模糊查询:oracle:法一:'%${name}%':缺点就是会被SQL注入法二:CONCAT('%',#{search_name},'%') 法三:'%'||#{search_name}||'%'mysql:CONCAT('%',#{search_name},'%')执行顺序: 1. 根据where子句选择行;原创 2017-08-23 14:31:34 · 3116 阅读 · 0 评论 -
ORACLE 导大数据混合使用rownum和order by引起的乱序问题
原排序代码: select id ,rn from( select id ,rownum rn from temp_org order by id ) where rn >10000 and rn 由于原库是生成库,所以为了安全起见,我新建了一张临时表 :create table temp_org as select原创 2017-06-10 11:58:37 · 2578 阅读 · 1 评论