1.表和数据CREATE TABLE `t_user` ( `id` bigint(32) NOT NULL AUTO_INCREMENT, `user_name` varchar(40) DEFAULT NULL COMMENT '用户名', `user_code` varchar(40) DEFAULT NULL COMMENT '用户编号', `phone` varchar(
转载 2024-10-18 12:41:15
19阅读
# MySQL 加了 ORDER BY 走索引的处理方法 ## 概述 在使用 MySQL 数据库进行查询时,如果在 SQL 语句中使用了 ORDER BY 子句,而该字段没有被索引覆盖,可能会导致查询性能下降。本文将详细介绍如何处理这种情况,并提供相应的代码示例。 ## 处理流程 下表展示了处理 "MySQL 加了 ORDER BY 走索引" 的流程: | 步骤 | 操作 | | -
原创 2023-11-07 04:36:02
189阅读
# MySQL视图的ORDER BY不走索引的实现 在数据库开发中,我们经常使用视图来简化复杂查询、增强数据安全性等。但是,若在视图中使用`ORDER BY`时,可能会出现不走索引的情况。本文将为初学者详细讲解如何处理这个问题。 ## 整体流程 首先,我们需要了解处理“我的视图ORDER BY未走索引”的基本步骤: | 步骤 | 描述 | |------|------| | 1 |
原创 2024-09-16 04:36:19
90阅读
介绍如何使用SELECT语句从表中检索一个或多个数据列   第二章: SELECT语句 SQL语句可以在一行给出,也可以分成许多行,分成多行更容易调试。 多条SQL语句必须以分号 分隔。多数DBMS不需要在单条SQL语句后加分号。但特定的DBMS可能必须在单条SQL语句后加上分号。 SQL语句不区分大小写   举例:kedou_jifen.jf_ad
视图视图(view): 本身也是一个查询,方便了查询工作,将复杂的查询简化 定义视图: create view 视图名 as sql语句 (视图名不能与表明相同) 如:create view test_1 as select * from test 使用视图: select * from test_1 (te
转载 2023-09-06 14:29:15
74阅读
为了数据的安全性,mysql有一个安全性设置,sql_safe_updates ,当把这个值设置成1的时候,当程序要对数据进行修改删除操作的时候条件必须要走索引。刚好现在也碰到了此类问题:网上找了相关文章查看,了解到了有些时候虽然设置了索引列,但是在有些情况下他是不走索引的1,字段类型不匹配 比如int类型和varchar  比如当code是索引时  Select * from
转载 2024-04-22 06:04:41
284阅读
      今天早上查看网站,发现非常慢!进linux 用top查看,发现MySQL cpu到了100%。开始怀疑是mysql性能的问题,不会10万条数据就卡成这样吧?虽然我的linux是在服务器上放了个虚拟机,但也不至于10万条记录挂啊? 网上找了一大把文章,my.cnf也设置了,我虚拟机内存是2G,将key_buf设置成512M 还是卡。非常郁
转载 2024-03-21 21:33:11
45阅读
去年十月份还是十一月左右,第一次接触到for update,当时有个异常场景,开发同事说可以锁读记录实现,select查询语句后面加上for update就行。对于我测试来说,使用锁读大致的操作过程就是:①选择手动提交事务;②执行select…for update语句;③处理完成后提交事务。当时只是粗略的了解了一下是个行级锁,锁住了就不能做修改,初体验转瞬即逝就没有放在心上。最近因为测试异常,频繁
Mysql-索引失效 order by优化索引失效最佳左前缀法则如果索引了多列 要遵循最佳左前缀法则 指从查询索引的最左前列开始并且不跳过索引中的列不在索引列上做任何操作 会导致索引失效而转向全表扫描不能使用索引中范围条件右边的列尽量使用覆盖索引在使用不等于(!=或者<>)的时候 无法使用索引会导致全表扫描is null 和is not null也无法使用索引lile以通配符开头 会造
转载 2023-09-30 16:26:39
128阅读
SELECT * from test where user_id = '21' AND STATUS = '1' ORDER BY create_time LIMIT 0,20语句中user_id 和create_time 均有单独索引最近发现一个语句使用 order by create_time limit 0,20 效率奇差,通过对比执行过程发现加limit时和不加limit时使用所用不一致在
索引简介 数据的目录,便于快速定位数据。减少IO读。索引是物理结构 --建立索引 create index ind_dep on dep_log(OPERATE_TAB); --查询索引 select * from dba_indexes; select ind.owner 拥有者,ind.index_name 索引名称,ind.index_type 索引类型,ind.table_name 表名
转载 2024-04-09 14:29:08
138阅读
一 常规思路互联网展示内容的时候,通常需要分页显示内容, 这就要用到如下格式的语句:SELECT <obj_list> FROM < single_table > ORDER BY <order_list> LIMIT n对于ORDERBY子句,通常需要按指定的对象进行排序;如果ORDERBY子句加上LIMIT子句,则在排序结果的基础上,输出结果集的n行.这种方
一、抛砖引玉 现有表结构如下:CREATE TABLE `t` ( `id` int(11) NOT NULL, `city` varchar(16) NOT NULL, `name` varchar(16) NOT NULL, `age` int(11) NOT NULL, `addr` varchar(128) DEFAULT NULL, PRIMARY KEY (`i
转载 2024-04-26 21:26:34
135阅读
一.建立索引的原则(规范)1.选择唯一性索引只要可以创建唯一性索引的,一律创建唯一索引(因为速度快呀)判断是否能创建唯一索引,用count(列名),count(distinct(列名))一样就能创建 2.如果该列重复值较多,则采用联合索引 3.为经常需要排序,分组,联合操作的字段建立索引,例如京东,淘宝那些产品就需要建立索引 4.为常作为查询字段的建立索引,比如你搜索
关系数据库依赖于主键,它是数据库物理模式的基石。主键在物理层面上只有两个用途: 惟一地标识一行。 作为一个可以被外键有效引用的对象。 索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分),它们包含着对数据表里所有记录的引用指针。下面是主键和索引的一些区别与联系。 1. 主键一定是唯一性索引,唯一性索引并不一定就是主键。 所谓主键
转载 2023-06-14 20:58:22
105阅读
本篇不分析各种会造成数据倾斜的原因,数据倾斜形成的原因也只是简单提及。本篇主要分析在sql中进行join操作时,会造成数据倾斜的常见两大原因,以及解决方法。我认为这两种情况,在工作中出现的几率较高,所以单独拿出来讨论。数据倾斜造成的原因(懂的可以跳过不看):这个问题简单来说,就是分布式处理中,每个节点处理的数据量差距较大,而导致单节点负担过重,处理时间过长,而拖慢整个作业的执行时间。在hive中,
# MySQL 走索引 在使用 MySQL 数据库时,可能会遇到一个常见的问题,就是查询语句没有走索引,导致查询效率低下。那么为什么会出现这种情况呢?接下来我们就来详细了解一下。 ## 什么是索引 在数据库中,索引是一种特殊的数据结构,用于提高数据的检索速度。通过在数据库表的一列或多列上创建索引,可以快速定位到需要查询的数据,而不必遍历整个表进行搜索。 ## MySQL 索引类型 My
原创 2024-06-16 05:42:59
97阅读
环境:spring jdbc 3.2.3.RELEASEoracle 11.2.0.1.0 - Production生产环境存在大表(3000万数据):WR_MP_HOURW_R,包含复合主键:mp_cp char(13),DT  date对应索引名称:WR_MP_HOURW_R_PRI。问题:针对此表的更新很慢,每条update大概需要2秒。更新的时候使用的where 条件包含mp_c
一个容易被忽略的SQL调优技巧 --- order by字段到底要不要加入索引作者:邱峙对于SQL调优,要调就调到极致,小编并不是处女座,而是因为在一个并发量很大的业务系统中,对于频繁执行的单条SQL性能的提升,可能对整体数据库的性能提升都有很大的意义。 但是遇到order by字段后面的字段,特别是当这个字段不在过滤条件中时,小编就会心里打鼓,是加到索引里面呢,还是不加到索引里面呢,加
转载 2023-12-25 05:38:28
299阅读
在MySQL中经常出现未按照理想情况使用索引的情况,今天记录一种Order by语句的使用导致未按预期使用索引的情况。1.  问题现象1.1 SQL语句:SELECT DISTINCT p.* FROM tb_name p WHERE 1=1 AND p.createDate >= '2019-10-23' AND p.createDate <= '2019-11-20
  • 1
  • 2
  • 3
  • 4
  • 5