-
提升MySQL查询性能的关键在于合理使用索引及多种优化策略。1.选择合适的索引列,重点考虑WHERE、ORDERBY和JOIN子句中的列,避免冗余索引;2.使用复合索引并遵循最左前缀原则,提高多条件查询效率;3.对长文本列使用前缀索引以节省空间;4.避免在WHERE子句中对字段使用函数或表达式,防止索引失效;5.利用EXPLAIN分析执行计划,查看是否命中索引及扫描行数;6.定期维护索引,如OPTIMIZETABLE重建碎片化索引;7.合理设置查询缓存提升重复查询效率;8.垂直分割表减少IO压力;9.使用
-
优化MySQL查询性能和正确使用索引需从合理创建索引、避免全表扫描、优化SQL写法、定期维护表四方面入手。1.合理创建索引,主键自动有索引,常用于查询条件的字段如用户ID、订单号建议加索引,组合查询多时可用联合索引并遵守最左匹配原则;2.避免全表扫描,通过EXPLAIN查看是否使用索引,避免因函数操作、模糊查询开头用通配符、类型转换、OR连接导致索引失效;3.优化SQL写法,避免SELECT*,减少数据传输,改用JOIN代替多层子查询,分页大数据时采用基于索引的游标方式;4.定期分析维护表,使用ANALY
-
锁分类:
从对数据操作的粒度分 :
表锁:操作时,会锁定整个表。行锁:操作时,会锁定当前操作行。
从对数据操作的类型分:
读锁(共享锁):针对同一份数据,多个读操作可以同时进行
-
今天上班的时候,业务方问了我这样一个问题:我有一个表,需要添加一个唯一的字段,但是目前这个字段存在一些重复值,有没有好的解决办法。
这个问题刚听到
-
原本的SQL和查出的结果如下:
SELECT
biz_day,
record.amount
FROM
ods_sale_pay_record record
WHERE
project.delete_flag = 'N'
AND ( record.biz_day >= '2021-10-01' AND record.biz_day <= '2
-
Elasticsearch相关概念文档1. elasticsearch是面向文档的,文档是所有可搜索数据的最小单位,例如:
1. 日志文件中的日志项
2. 一本电影的具体信息 / 一张唱片的详细信息
3. MP3播放器里的一
-
背景最近项目中包含一些导出功能,一些功能需要多表查询才可以满足需求,也有一些数据仅是单表查询。在此之前想到过两种方案,第一种是查询出数据后通过EasyExcle写入文件,另一种是使用
-
你可能已经知道int(1)这个长度1并不代表允许存储的宽度!但对这个长度很多人也没有真正研究过到底代表什么,今天我就来简单的分析一下!先看一个简单的建表小案例:create table test( id int(11) unsi
-
ALLOW_INVALID_DATES :允许无效的日期设置后可使非法值成功插入日期类型字段里。示例: insert t values('20161131');可以成功。ANSI_QUOTES :字段可以使用双引号示例:select "userid" from "t";ERROR_FOR_DIVISION_
-
1. 为什么要拆分数据库?
单体项目在构建之初,数据库的负载和数据量都不大,所以不需要对数据库做拆分,小型财务系统、文书系统、ERP系统、OA系统,用一个MySQL数据库实例基本就够用了。
-
你插入MySQL的数据真的存到表里了么?
现在有这么一个问题:当你执行一条insert语句之后,插入的数据就已经保存在磁盘中了么?
答案是不一定 ,那是为什么呢?首先来了解一下MySQL在InnoDB存
-
2020 开春一场疫情,打乱了许多人的安排,也成为了此文拖延的借口;果然年年岁岁花相似,岁岁年年拖延症啊。2020 年于我而言也是折腾的一年,离开阿里重回第三次创业的轨道;不同于之前
-
TEXT类型
下表是所有Text类型,及其最大存储空间
type
最大存储空间
TINYBLOB, TINYTEXT
2^8 -1,255Bytes
BLOB, TEXT
2^16 -1
MEDIUMBLOB, MEDIUMTEXT
2^24 -1
LONGBLOB, LONGTEXT
2^32 -1
根据charset的不同,所能存储的
-
在数据库的使用中排序和过滤也是经常的操作
排序检索数据,关键字order
1.按照某个列名排序
普通排序
mysql> select * from user;
+----+--------+-----+-----------------------+-----+
| id | name | age | address
-
我们在进行新的功能开发时,由于历史项目的存在,需要在程序起动时对数据进行判断,如果发现是历史版本的数据,则需要对数据进行一些特定的处理;如果是最新的数据,则跳过处理过程。