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