实践中如何优化MySQL
实践中,MySQL的优化主要涉及SQL语句及索引的优化、数据表结构的优化、系统配置的优化和硬件的优化四个方面,如下图所示:
SQL语句及索引的优化
SQL语句的优化
SQL语句的优化主要包括三个问题,即如何发现有问题的SQL、如何分析SQL的执行计划以及如何优化SQL,下面将逐一解释。
2024年10月06日
实践中如何优化MySQL
实践中,MySQL的优化主要涉及SQL语句及索引的优化、数据表结构的优化、系统配置的优化和硬件的优化四个方面,如下图所示:
SQL语句及索引的优化
SQL语句的优化
SQL语句的优化主要包括三个问题,即如何发现有问题的SQL、如何分析SQL的执行计划以及如何优化SQL,下面将逐一解释。
2024年10月06日
为什么要分库分表和读写分离?
类似淘宝网这样的网站,海量数据的存储和访问成为了系统设计的瓶颈问题,日益增长的业务数据,无疑对数据库造成了相当大的负载,同时对于系统的稳定性和扩展性提出很高的要求。随着时间和业务的发展,数据库中的表会越来越多,表中的数据量也会越来越大,相应地,数据操作的开销也会越来越大;另外,无论怎样升级硬件资源,单台服务器的资源(CPU、磁盘、内存、网络IO、事务数、连接数)总是有限的,最终数据库所能承载的数据量、数据处理能力都将遭遇瓶颈。分表、分库和读写分离可以有效地减小单台数据库的压力。
2024年10月06日
PostgreSQL 提供多种索引类型,以提高性能和效率。索引是一种数据结构,用于快速查找和访问表中的数据。
创建索引
* 索引可以为任何非 NULL 字段创建。
* 可以为多个字段创建多个索引。
索引类型
* B 树索引:用于排序值和排序的非唯一值。
2024年10月06日
索引有各种类型,除了标准索引外,还有一些特殊类型的索引:
创建标准索引
2024年10月06日
全文检索并没有你想象中的难,创建全文检索的核心思路是:初始化索引环境,为表字段创建索引,通过分词处理搜索文本,匹配索引中的词汇与记录行,最后根据匹配结果构建并返回相关数据。
2024年10月06日
复合索引顾名思义,区别于单列索引,是由两个或多个列一起构成的索引。其在B树上的数据结构是什么样?如下图,是一个包含两列的复合索引。
如果你观察仔细,还会发现它的叶子节点是ASC递增排序的。现根据第一个值排序,然后根据第二个值排序。查的时候也一样,先查第一个值,在查第二个值。可以想象三个列组成的复合索引数据结构该是什么样的。
在实际创建表时,一开始,只会创建一个主键id,oracle会为主键默认创建索引。随着经验的增加,开始去考虑性能,会开始研究索引,比如查询报表、订单等业务场景。这时候多多少少都会创建索引了,然后开始研究复合索引。复合索引首先带来的问题是你如何在脑海中构建一个B树上的复合索引结构?接下来就到了如何创建复合索引的问题。
2024年10月06日
之前都是用的Oracle,刚接触SQL Server不久,各种不习惯:今天遇到nvarchar(MAX)类型字段无法建立索引/约束的问题,记录一下:
起因
在一个Asp.net MVC项目中,需要给框架内置的Identity库中表AspNetUsers的PhoneNumber字段添加唯一性约束,但在Microsoft SQL Server Management Studio中设置时,却无法选择到PhoneNumber字段,同时发现其他长度为MAX的字段也无法选择(如下图):
2024年10月06日
最近开发说某个接口跑的很慢,排查了下发现其中一条sql,数据量不大,但居然要跑451s,下面简单记录一下优化的过程。
SELECT l.location_gid ENUMVALUE, l.location_name DISPVALUE FROM servprov s, location l WHERE s.domain_name = 'FSL2' AND s.servprov_gid = l.location_gid AND EXISTS (SELECT 1 FROM fsl2_fee_split f WHERE f.servprov_gid = l.location_gid AND start_time > SYSDATE - 60) ORDER BY 1 DESC, 2
2024年10月06日
每个人都有自己优化sql的一些方式,这里主要记录一下我平时sql优化的大概过程,有改进的地方大家帮忙指点下。
SQL(4kn1d3t4g6bq7) 在采样期平均单次执行逻辑读为 206338.55, 其最新执行计划涉及 3 个对象,平均单个对象的逻辑读较大。
在其最新执行计划中,发现较差的执行步骤:
2024年10月06日
本文将介绍SQL中的CREATE INDEX语句,以及如何使用它来提高数据库查询速度。通过具体的示例,我们将深入了解CREATE INDEX语句的用法和注意事项。
一、引言