数据库
文章平均质量分 58
una2017
这个作者很懒,什么都没留下…
展开
-
sql之inner join、left join、right join、full join的区别
inner join、left join、right join、full join的区别原创 2017-06-28 10:28:23 · 446 阅读 · 0 评论 -
数据库连接池
数据库连接池,简称dbcp database connection pool存在意义:数据库的连接是非常耗费系统资源的,一个应用通常都是需要与数据库打交道,也就需要经常连接数据库,这样导致浪费大量系统资源;连接池的原理就是:我事先创建好几个数据库连接放着,当我的系统需要操作数据库时就从连接池里直接拿连接,并将这个连接标记为 忙 ;用完后在放会池中,标记为 空闲;当连接池里的连接都在被使用,如果此...转载 2018-03-14 18:01:40 · 195 阅读 · 0 评论 -
创建索引的优点和缺点
创建索引可以大大提高系统的性能优点:第一,通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。第二,可以大大加快数据的检索速度,这也是创建索引的最主要的原因。第三,可以加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义。第四,在使用分组和排序子句进行数据检索时,同样可以显著减少查询中分组和排序的时间。第五,通过使用索引,可以在查询的过程中,使用优化隐藏器,提高系统的性能。 缺点...转载 2018-02-26 15:22:35 · 618 阅读 · 0 评论 -
表分区VS表分割
分区分表区别分区和分表针对的都是数据表,而分表是真正的生成数据表,是将一张大数据量的表分成多个小表实现数据均衡;分区并不是生成新的数据表,而是将表的数据均衡分摊到不同的硬盘,系统或是不同服务器存储介子中,实际上还是一张表。另外,分区和分表都可以做到将表的数据均衡到不同的地方,提高数据检索的效率,降低数据库的频繁IO压力值,分区的优点如下:1、相对于单个文件系统或是硬盘,分区可以存储更多的数据;2、...转载 2018-02-26 15:06:52 · 620 阅读 · 0 评论 -
提高性能的数据库纵向分割和横向分割
1、纵向分割(列分割)现象:通常,随着开发过程的推进,系统中主表的字段数会越来越多。但是一个表的字段个数,是受数据库规范和性能限制的。例如,SQL Server数据库中一个表最多可以包含1024个字段,而实际应用中一般不能超过246个字段,每行数据可以存储8060字节,另外,对于大数据表来说,列的数量直接影响存取速度。数据的存储结构对行的存取更加优化,而不是列的存取。下面,提出几种分割存储列的情形...原创 2018-02-26 14:46:25 · 7168 阅读 · 0 评论 -
一次数据库角度去分析定位性能瓶颈的实践
慢查询编码 性能描述 性能瓶颈 优化思路 27bw7vzpu61dt (运单接收接口)全表扫描:单条UPDATE,查出MID_EO_WORK_ORDER全表数据。 全表扫描 增加索引(-- Create/Recreate primary, unique and foreign key constraints alter table MID_EO_WORK_ORDER ...原创 2018-02-26 11:33:47 · 310 阅读 · 0 评论 -
引起慢查询的常见原因及一些解决方案
1、没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) 2、I/O吞吐量小,形成了瓶颈效应。 3、没有创建计算列导致查询不优化。 4、内存不足 5、网络速度慢 6、查询出的数据量过大(可以采用多次查询或其他的方法降低数据量) 7、锁或者死锁(这也是查询慢最常见的问题,是程序设计的缺陷)sp_lock,sp_who,活动的用户查看,原因是读写竞争资源。 9、返回了不必要的行和列 1...转载 2018-02-26 11:26:31 · 7886 阅读 · 0 评论 -
一次慢查询语句的问题定位及解决方案
问题现象:前几天在项目上线过程中,发现有一个页面无法正确获取数据,经排查原来是接口调用超时,而最后发现是因为SQL查询长达到20多秒而导致了问题的发生。复杂SQL语句的构成:类比的语句来描述当时的场景,可以表达如下:SELECT * FROM a_table AS a LEFT JOIN b_table AS b ON a.id=b.id WHERE a.id IN ( SELECT ...转载 2018-02-26 11:19:18 · 1383 阅读 · 2 评论 -
【Oracle】-call 和 exec调用存储过程的区别
call 和 exec调用存储过程的区别原创 2017-12-26 16:16:46 · 2325 阅读 · 0 评论 -
【Oracle】-通过package来构建存储过程
第一部分:Package定义包头语法格式CREATE OR REPLACE PACKAGE package_name /*包头名称*/ IS|AS pl/sql_package_spec /*定义过程,函数以及返回类型,变量,常量及数据类型定义*/ 包体语法格式CREATE OR REPLACE PACKAGE BODY package_name/*包名必须与包头的包名一致*/ IS | AS ...原创 2017-12-26 18:00:03 · 1279 阅读 · 0 评论 -
【Oracle】-for update 与 rowid
for update 与 rowid原创 2017-12-05 10:02:21 · 6864 阅读 · 0 评论 -
【Oracle】-借助dual构造不同类型的数据
借助dual构造不同类型的数据原创 2017-12-05 11:58:21 · 694 阅读 · 0 评论 -
sql之null、空字符串、0的区别
sql之null、空字符串、0的区别原创 2017-12-05 16:06:00 · 11165 阅读 · 0 评论 -
【Oracle】-随机抽样N条记录
第一部分:Oracle访问数据的基本方法1、全表扫描(Full table Scan):执行全表扫描,Oracle读表中的所有记录,考查每一行是否满足WHERE条件。Oracle顺序的读分配给该表的每一个数据块,且每个数据块Oracle只读一次.这样全表扫描能够受益于多块读。2、采样表扫描(sample table scan):扫描返回表中随机采样数据,这种访问方式需要在FROM语句中包含SAMP...原创 2017-12-14 17:52:28 · 2705 阅读 · 0 评论 -
【Oracle】-存储过程编写实例
存储过程编写实例原创 2017-12-26 14:20:33 · 332 阅读 · 0 评论 -
redis、memcache和mongodb各自的优缺点是什么,怎么选择呢?
redis、memcahce 比较相似,但与 mongodb 完全不同,几乎没有可比性。总的来说 redis/memcache 是基于内存的,讲究的是性能,多用作缓存层,比如说存放session。而 mongodb 是面向文档的,存储的是类似JSON的非结构化数据,查询起来非常方便,开发效率高,比较类似传统SQL关系型数据库。普遍认为redis性能明显好于MemoryC转载 2017-11-28 13:56:42 · 289 阅读 · 0 评论 -
Mysql存储日期类型用int、datetime还是timestamp?
常存储时间用datetime类型,现在很多系统也用int存储时间,它们有什么区别?1)int (1) 4个字节存储,INT的长度是4个字节,存储空间上比datatime少,int索引存储空间也相对较小,排序和查询效率相对较高一点点(2)可读性极差,无法直观的看到数据,可能让你很恼火2)TIMESTAMP(1)4个字节储存(2)值以UTC格式保存(3)时区转化 ,存储时对当前的时区进行转换,检索时...转载 2018-04-28 11:43:18 · 5598 阅读 · 0 评论