MySQL
木木那年
从事java相关
展开
-
MySQL InnoDB In-Memory Structures Buffer Pool
官方文档:https://dev.mysql.com/doc/refman/5.7/en/innodb-buffer-pool.htmlBuffer Pool缓冲池是主内存中的一个区域,在InnoDB访问表和索引数据时会在其中进行高速缓存。缓冲池允许直接从内存中处理经常使用的数据,从而加快了处理速度。在专用服务器上,通常将多达80%的物理内存分配给缓冲池。为了提高大容量读取操作的效率,缓冲池被分为多个页面,这些页面可能包含多个行。为了提高缓存管理的效率,缓冲池被实现为页面的链接列表...原创 2020-12-18 15:05:11 · 105 阅读 · 0 评论 -
SQL 优化2 -- 索引
索引是数据库优化中最常用也是最重要的手段之一,通过索引通常可以帮助用户解决大多数的 SQL 性能问题。2.1 索引的存储分类MyISAM 存储引擎的表的数据和索引是自动分开存储的,各自是独立的一个文件;InnoDB存储引擎的表的数据和索引是存储在同一个表空间里面,但可以有多个文件组成。MySQL 中索引的存储类型目前只有两种(BTREE 和 HASH),具体和表的存储引擎相关:My...原创 2018-11-23 14:49:51 · 170 阅读 · 0 评论 -
SQL优化3 - 两个简单实用的优化方法
对于大多数开发人员来说,可能只希望掌握一些简单实用的优化方法,对于更多更复杂的优化,更倾向于交给专业 DBA 来做。本节将向大家介绍两个简单适用的优化方法。3.1 定期分析表和检查表分析表的语法如下:ANALYZE [LOCAL | NO_WRITE_TO_BINLOG] TABLE tbl_name [, tbl_name] ...本语句用于分析和存储表的关键字分布,分析的...原创 2018-11-23 15:07:36 · 146 阅读 · 0 评论 -
SQL优化4 - 常用 SQL 的优化
前面我们介绍了 MySQL 中怎么样通过索引来优化查询。日常开发中,除了使用查询外,我们还会使用一些其他的常用 SQL,比如 INSERT、GROUP BY 等。对于这些 SQL 语句,我们该怎么样进行优化呢?4.1 大批量插入数据当用 load 命令导入数据的时候,适当的设置可以提高导入的速度。对于 MyISAM 存储引擎的表,可以通过以下方式快速的导入大量的数据。ALTER TA...原创 2018-11-27 14:43:02 · 203 阅读 · 0 评论 -
MySQL执行计划解析
前言在实际数据库项目开发中,由于我们不知道实际查询时数据库里发生了什么,也不知道数据库是如何扫描表、如何使用索引的,因此,我们能感知到的就只有SQL语句的执行时间。尤其在数据规模比较大的场景下,如何写查询、优化查询、如何使用索引就显得很重要了。那么,问题来了,在查询前有没有可能估计下查询要扫描多少行、使用哪些索引呢?答案是肯定的。以MySQL为例,MySQL通过explain命令输出执...转载 2018-11-27 14:45:24 · 185 阅读 · 0 评论