Mysql 索引优化

本文介绍了MySQL中索引的基本概念及其对查询性能的影响,并详细对比了MyISAM与InnoDB两种存储引擎的特点,包括它们如何存储数据和索引。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、索引介绍

索引是我们对数据库 优化当中最重要的手段,索引实现了B-tre或者B+tree的数据结构,通过这种数据结构以及算法可以帮助我们快速检索出我们想要的数据,如果我们的数据库系统查询比较慢,那么我们通常去查看我们的慢日志还有我们的执行计划

Mysql慢查询功能:

Windows:Windows 的配置文件为 my.ini,一般在 MySQL 的安装目录下或者 c:\Windows 下。
Linux:Linux 的配置文件为 my.cnf ,一般在 /etc 下

[mysqlld]  
long_query_time=2  
  
#5.0、5.1等版本配置如下选项  
log-slow-queries="mysql_slow_query.log"  
#5.5及以上版本配置如下选项  
slow-query-log=ON
slow_query_log_file="mysql_slow_query.log"  
  

二、索引存储的分类

MYSQL 有两个存储引擎: 

MYISAM存储引擎这个里面的表数据和索引自动分开存储,各种是一个独立的文件存储的。INNODB存储引擎中表数据和索引数据存储在同一个共享表空间里,但是有多个文件组成,Mysql目前是不支持函数索引,但是能对列的前面某一部分进行索引,这样就可以减少数据的存储空间,这个特性可以大大缩小索引的文件大小,用户在设计表结构的时候,可以对文本列根据这个特性灵活设计。

MYISAM存储引擎的保存文件类型:

.MYD数据文件、.MYI的索引文件、.frm结构文件

Innodb存储引擎的保存文件类型:

IBDATA1 IBD 数据文件

Innodb存储引擎的表空间是有两种形式的:

Innodb共享表空间:

默认形式:索引和数据文件是共享表空间

Innodb独立表空间:

Innodb存储引擎下面的表空间优化的时候通常是切换成独立表空间形式,这样的好处在索引文件和数据文件分离,多文件之间能很方便的跨数据库甚至跨硬件的数据读写更具有灵活性,版本5,5以上默认的都是==存储引擎都是Innodb,就恶意可做数据分布式支撑。


具体 两种引擎的差异 http://blog.youkuaiyun.com/lc0817/article/details/52757194

https://www.cnblogs.com/tgycoder/p/5410057.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值