
数据库
文章平均质量分 83
MySQL、Oracle等等
三七有脾气
我是“三七有脾气”,一个在互联网“苟且偷生”的程序员
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
MySQL的52条SQL语句性能优化
MySQL的52条SQL语句性能优化1对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。2应尽量避免在 where 子句中对字段进行 null 值判断,创建表时NULL是默认值,但大多数时候应该使用NOT NULL,或者使用一个特殊的值,如0,-1作为默 认值。3应尽量避免在 where 子句中使用!=或<>操作符, MySQL只有对以下操作符才使用索引:<,<=,=,>,>=,BETWEEN,IN,以及某转载 2021-10-27 13:25:59 · 306 阅读 · 0 评论 -
MySQL实现如果存在就更新,不存在就写入
最近的业务中,有这样一个需求:如果数据存在就更新,不存在就写入,一般情况下是需要先查询,后判断是更新还是写入的,需要进行两次IO操作。所以为了减少同步时间,第一个思路是使用并发,第二种思路就是应该尽量减少请求MySQL的次数,这里将讲讲第二种思路。正常情况下实现:如果存在就更新,不存在就写入的伪代码:// 伪代码user=User.FindById(1)if user == null{ user.Insert()}else{ user.Update()}需要先查询,然后在通过if.原创 2021-09-30 10:09:38 · 5716 阅读 · 0 评论 -
Oracle实现------如果某字段存在某字符串,则置顶,否则其他数据按时间排序
cle实现------如果某字段存在某字符串,则置顶,否则其他数据按时间排序最近在做公司的一个项目,用的oracle数据库,也是不太熟悉,这几天就接到了一个新需求。要求----如果在“descr”字段中,存在“已更新租赁到期时间”,则将其置顶,其余数据按时间排序最终得出结果如下: select * from emp order by case when descr like "已更新租赁到期时间" then 1 else 2 end, create_time算了,就以Oracle数据原创 2020-09-21 18:11:53 · 928 阅读 · 0 评论 -
索引优化之explain后的详细分析
索引优化之explain后的详细分析熟悉索引优化的大佬都知道,在explain关键字的作用下,可以清楚索引是否被执行,索引是否被完全执行,索引执行的方式,引入索引后是否使查询更快等等在进入正题之前,我来先介绍一下explain作用下的表的内容吧,如下:我来介绍几个重点1.select_type(额,其实我感觉这个用处不大吧,应该?)select_type数据列指明各“单位select 查询”的查询类型,select_type数据列的列值如下所示①simple:表明进行的是进行不需要Union原创 2020-12-22 09:29:40 · 378 阅读 · 0 评论 -
MySQL支持的两大索引类型,hash索引和B-tree索引的区别和优缺点
MySQL支持的两大索引类型,hash索引和B-tree索引的区别和优缺点先总结:MySQL支持B-Tree索引和hash索引。B-Tree索引B-Tree索引是一个平衡查找树,叶子到根部的节点距离相等。所有的记录都是按照键值的大小排列,叶子结点由指针连接。B-Tree索引的优点:①B-tree索引更适合进行范围查询②存储引擎不需要进行全表扫描来获得需要的数据,取而代之的是从索引的根节点开始进行搜索。然后根据指针逐层向下查找,通过比较节点页的值和有目标值就可以找到合适的指针进入下层节点,而这原创 2020-09-17 10:03:46 · 680 阅读 · 0 评论 -
原创:史上最全最通俗易懂的,索引最左前缀匹配原则(认真脸)
索引最左前缀匹配原则对于最左前缀匹配原则居然没有百度百科,实在是让我感觉不可思议。最左前缀匹配原则,用几句话来概述就是:顾名思义,就是最左优先,在创建多列索引时,要根据业务需求,where子句中使用最频繁的一列放在最左边。最左前缀匹配原则,非常重要的原则,mysql会一直向右匹配直到遇到范围查询(>、<、between、like)就停止匹配,比如a = 1 and b = 2 and c > 3 and d = 4 如果建立(a,b,c,d)顺序的索引,d是用不到索引的,原创 2020-08-22 09:34:56 · 31495 阅读 · 21 评论