博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

分析索引效率

Posted on 2016-07-12 20:25  moss_tan_jun  阅读(183)  评论(0编辑  收藏  举报

方法:在一般的SQL语句前加上explain; 
  分析结果的含义: 
  1)table:表名; 
  2)type:连接的类型,(ALL/Range/Ref)。其中ref是最理想的; 
  3)possible_keys:查询可以利用的索引名; 
  4)key:实际使用的索引; 
  5)key_len:索引中被使用部分的长度(字节); 
  6)ref:显示列名字或者"const"(不明白什么意思); 
  7)rows:显示MySQL认为在找到正确结果之前必须扫描的行数; 
  8)extra:MySQL的建议; 

"

show processlist;列出每一笔联机的信息。 
show variables;列出mysql的系统设定。 
show tables from db_name;列出db_name中所有数据表; 
show [full] columns from table_name;列出table_name中完整信息,如栏名、类型,包括字符集编码。 
show index from table_name; 列出table_name中所有的索引。 
show table status;;列出当前数据库中数据表的信息。 
show table status from db_name;;列出当前db_name中数据表的信息。 
alter table table_name engine innodb|myisam|memory ;更改表类型 
explain table_name / describe table_name ; 列出table_name完整信息,如栏名、类型。 
show create table table_name 显示当前表的建表语句 
alter table table_name add primary key (picid) ; 向表中增加一个主键 
alter table table_name add column userid int after picid 修改表结构增加一个新的字段 
alter table table_name character set gb2312 改变表的编码 
select user(); 显示当前用户。 
select password(’root’); 显示当前用户密码 
select now(); 显示当前日期 
flush privileges 在不重启的情况下刷新用户权限 
mysqld –default-character-set=gb2312 ;设置默认字符集为gb2312 "

1

"MyISAM 存储引擎( 非事物存储引擎 ):所有数据都存放在 Mysql 配置中所设定的 Datadir 目录下。

MyISAM 存储引擎除了备份 Mysql 系统共有的物理文件外,有三个文件需要备份,记录表结构元数据的 .frm 文件、存储表数据的 .MYD 文件、存储索引数据的 .MYI 文件。

2、Innodb 存储引擎( 事务性存储引擎 ):存放数据的位置取决于对 Innodb 的相关配置。

决定 Innodb 存放数据位置的参数:Innodb_data_home_dir 、Innodb_data_file_path 、Innodb_log_group_home_dir( 指定了数据和日志文件存放的位置 )

决定 Innodb 表空间存储方式参数:Innodb_file_per_table( 决定 Innodb 是以共享表空间还是独享表空间存储数据 )

如果使用共享表空间存储方式,Innodb 需要备份 Innodb_data_home_dir 和 Innodb_data_file_path 所设定的数据文件及 Datadir 中相应的数据目录下的所有 Innodb 存储引擎表的 .frm 文件。

如果使用独享表空间存储方式,除了备份上面所有文件外,还要备份 Datadir 中相应数据目录下的所有 .idb 文件( 该文件中存放的才是独享表空间方式下 Innodb 存储引擎表的数据 )。

## 使用独享表空间时,数据并不是全部放在 Datadir 下数据库目录下的 .ibd 文件中,这里存放的只是表数据而以。
## Innodb 是事务存储引擎,它的 undo 和 redo 信息,不管是使用独享还是共享表空间存储数据,与事务相关的 undo 信息以及其它一些元数据信息,
## 都是存放在 Innodb_data_home_dir 和 Innodb_data_file_path 这两个参数所设定的数据文件中的。所以这两个目录下的数据文件不管什么情况( 物理备份 )都必须备份。

Innodb 还有自己存放 redo 信息和相关事务信息的日志文件在 Innodb_log_group_home_dir 参数所设定的位置,这里的所有日志文件也必须备份。"