数据库
文章平均质量分 87
mysql、oracle、postgreSQL
10年新兵
能深耕,敢破局,懂持续。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
缓存雪崩,缓存穿透解决方案
1. 缓存穿透:查询一个必然不存在的数据。比如文章表,查询一个不存在的id,每次都会访问DB,如果有人恶意破坏,很可能直接对DB造成影响。解决办法:对所有可能查询的参数以hash形式存储,在控制层先进行校验,不符合则丢弃。2.缓存失效:如果缓存集中在一段时间内失效,DB的压力凸显。这个没有完美解决办法,但可以分析用户行为,尽量让失效时间点均匀分布。 缓存雪崩缓存雪崩可能是因为数据未加载到缓存中,...转载 2018-04-18 17:03:41 · 526 阅读 · 0 评论 -
Oracle 隐式转换主要场景与缺陷
Oracle中对不同类型的处理具有显式类型转换(Explicit)和隐式类型转换(Implicit)两种方式,对于显式类型转换,我们是可控的,但是对于隐式类型转换,当然不建议使用,因为很难控制,有不少缺点,但是我们很难避免碰到隐式类型转换,如果不了解隐式类型转换的规则,那么往往会改变我们SQL的执行计划,从而可能导致效率降低或其它问题。原创 2018-04-11 15:40:38 · 4617 阅读 · 1 评论 -
Oracle迁移PostgreSQL总结
序号项目OraclePostgreSQL1当前时间SYSDATE可全部使用current_timestamp替换2序列SEQNAME.NEXTVALNEXTVAL('SEQNAME')3固定值列SELECT '1' AS COL1SELECT CAST('1' AS TEXT) AS COL14NVLNVL函数NVL可以用COALESCE函数替换5类型自动转换Oracle某些情况下支持类型自动转换...转载 2018-04-12 17:18:27 · 3275 阅读 · 0 评论 -
高并发操作、查询oracle数据库设计建议
(1)使用分布式垂直切分。由于已经使用了Oracle RAC 提供分布式的集群服务。所以对于产生大数据和高并发的表,可以采用数据库垂直分片(比如1-500号集中器的数据采集到数据库A、500-1000到B)。数据分片,是将整体数据分摊在多个存储设备上,这样每个存储设备的数据量相对就会小很多,以此满足系统的性能需求。分区可以提高可管理性、性能与可用性,从而给各种各样的应用程序带来极大的好处。当然一个...转载 2018-04-11 15:54:53 · 3547 阅读 · 0 评论 -
TRUNCATE、DROP、DELETE区别
TRUNCATE TABLE 在功能上与不带 WHERE子句的 DELETE语句相同 二者均删除表中的全部行。但 TRUNCATE TABLE 比DELETE速度快,且使用的系统和事务日志资源少。 DELETE语句每次删除一行,并在事务日志中为所删除的每行记录一项;TRUNCATE TABLE 通过释放存储表数据所用的数据页来删除数据,并且只在事务日志中记录页的释放。 TRUNCATE,D...原创 2018-04-12 17:08:35 · 158 阅读 · 0 评论 -
MySQL一行数据拆分为多行数据(含分隔符的字符串截取)
实现的SQLSELECT SUBSTRING_INDEX(SUBSTRING_INDEX('7654,7698,7782,7788',',',help_topic_id+1),',',-1) AS numFROM mysql.help_topicWHERE help_topic_id < LENGTH('7654,7698,7782,7788')-LENGTH(REPLACE('7654,7698,7782,7788',',',''))+1涉及的知识点一...原创 2020-05-28 17:17:55 · 4256 阅读 · 1 评论 -
MySQL优化技巧
1. 为查询缓存优化你的查询 大多数的MySQL服务器都开启了查询缓存。这是提高性最有效的方法之一,而且这是被MySQL的数据库引擎处理的。当有很多相同的查询被执行了多次的时候,这些查询结果会被放到一个缓存中,这样,后续的相同的查询就不用操作表而直接访问缓存结果了。 这里最主要的问题是,对于程序员来说,这个事情是很容易被忽略的。因为,我们某些查询语句会让MySQL不使用缓存。请看下面的示例: 复制...转载 2018-04-12 17:21:00 · 162 阅读 · 0 评论
分享