mysql不被人知的秘密(4)

来源:未知 责任编辑:责任编辑 发表时间:2013-12-06 08:46 点击:

 

describe 语句使用方法和explain一样。

 

##2.2 优化子查询

 

多用连接查询来代替子查询

为什么呢?

因为子查询时,mysql需要为内层查询结果建立一个临时表,然后外层查询在临时表中查找,查询完后需要撤销临时表。

而连接查询不需要建立临时表,所以比子查询快。

 

##2.3优化插入记录的速度

 

插入记录时,索引,唯一性校验等都会影响到插入记录的速度。而且,一次插入多条记录和多次插入记录所耗费的时间也不同。

 

  1.禁用索引

 

插入数据时,mysql会根据表的索引对插入的记录进行排序,降低插入速度。解决这个问题可以在插入记录之前禁用索引,等到插入完毕后在开启。

 

alter table 表名disable keys;    //禁用索引

        alter table 表名enable keys;    //开启索引

 

2.禁用唯一性检查

 

插入数据时,mysql会对插入的记录进行唯一性检查,会降低插入速度。

set unique_checks=0;     //禁用唯一性

set unique_checks=1;    //开启唯一性

 

3.优化insert语句

 

insert into 表名values

(......),

(......);

 

insert into 表名values (......);

insert into 表名values (......);

 

上面两种插入方法,第一种与数据库的连接等操作,明显比第二种快。

 

 

##2.3分析表,检查表和优化表

 

 分析表:分析关键字的分布

 检查表:检查表是否存在错误

 优化表:消除删除或者更新造成的空间浪费

当执行下面三个操作时,mysql数据库会给表加一个只读锁,只能读取记录,不能更新和插入记录。

 

1.分析表

analyze table 表名1 [,表名2....];

 

2.检查表

check table 表名1 [,表名2....] [option];

 

option有五个参数:quick,fast,changed,medium,extended  ->>执行效率依次降低

 

 -->option选项只对MyISAM类型的表有效。

 

3.优化表

optimize table 表名1 [,表名2....];

    -->只能优化表中的varchar,blob和text字段

  如果一个表使用了text或blob这样的数据类型,那么更新,删除等就会造成的磁盘空间的浪费。操作完成后,以前分配的磁盘空间不会自动回收。

使用optimize可以将磁盘碎片整理出来,以便利用。

 

 

下面是一些mysql基本使用命令。

一:mysql查看基本命令

(1):查看当前有哪些数据库

  show databases;

(2):使用mysql数据库

 use test;

(3):查看当前数据库下的表

  show tables;

(4):查看上述grade表建立的命令

show  create table grade;

(5):查看student表的结构

desc student;

(6):查看数据库支持的存储引擎

show engines;

show engines \G ;      //  \G让结果更美观

发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名: 验证码:点击我更换图片
最新评论 更多>>

推荐热点

  • mysql-mmm
  • mysqldump命令——MySQL数据库备份还原
  • Oracle数据导入MySQL的快捷工具:MySQL Migration Toolkit
  • 简简单单储存过程——循环一个select结果集
  • MySQL数据库十大优化技巧
  • Mysql安装笔记
  • Mysql主主复制架构配置
  • Mysql的Procedure 参数为NULL问题分析
  • MySQL Stmt预处理提高效率问题的小研究
网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
Copyright © 2008-2015 计算机技术学习交流网. 版权所有

豫ICP备11007008号-1