mysql学习总结

一、InnoDB特点

优点:

1、支持事务

2、行锁

3、支持外键

 

缺点:

1、不支持全文索引

 

二、MyIsaM

BLOB和TEXT列可以被索引。

可以把数据文件和索引文件放在不同目录,用DATA DIRECTORY和INDEX DIRECTORY选项CREATE TABLE以获得更高的速度

 

mysql备份:

1:mysqldump

几个常用用例:

1.导出整个数据库

 mysqldump -u 用户名 -p 数据库名 > 导出的文件名    

 mysqldump -u wcnc -p smgp_apps_wcnc > wcnc.sql

2.导出一个表

 mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名

 mysqldump -u wcnc -p smgp_apps_wcnc users> wcnc_users.sql

3.导出一个数据库结构

  mysqldump -u wcnc -p -d --add-drop-table smgp_apps_wcnc >d:\wcnc_db.sql

 -d 没有数据 --add-drop-table 在每个create语句之前增加一个drop table 

4.导入数据库

  常用source 命令

  进入mysql数据库控制台,

  如mysql -u root -p 

  

  mysql>use 数据库

  然后使用source命令,后面参数为脚本文件(如这里用到的.sql)

  mysql>source d:\wcnc_db.sql

 

 

表复制:

CREATE TABLE A LIKE B

 此种方式在将表B复制到A时候会将表B完整的字段结构和索引复制到表A中来。

如果想复制数据可以在创建后用:

insert into table A  select * from B where ...

 

CREATE TABLE A AS SELECT x,x,x,xx FROM B LIMIT 0

此种方式只会将表B的字段结构复制到表A中来,但不会复制表B中的索引到表A中来。这种方式比较灵活可以在复制原表表结构的同时指定要复制哪些字段,并且自身复制表也可以根据需要增加字段结构,及复制数据

两种方式在复制表的时候均不会复制权限对表的设置。比如说原本对表B做了权限设置,复制后,表A不具备类似于表B的权限。

 

MySQL查看和修改表的存储引擎

1 查看系统支持的存储引擎

show engines;

2 查看表使用的存储引擎

两种方法:

a、show table status from db_name where name='table_name';

b、show create table table_name;

如果显示的格式不好看,可以用\g代替行尾分号

有人说用第二种方法不准确,我试了下,关闭掉原先默认的Innodb引擎后根本无法执行show create table table_name指令,因为之前建的是Innodb表,关掉后默认用MyISAM引擎,导致Innodb表数据无法被正确读取。

3 修改表引擎方法

alter table table_name engine=innodb;

4 关闭Innodb引擎方法

关闭mysql服务: net stop mysql

找到mysql安装目录下的my.ini文件:

找到default-storage-engine=INNODB 改为default-storage-engine=MYISAM

找到#skip-innodb 改为skip-innodb

启动mysql服务:net start mysql

 

 

mysql创建和删除表

http://www.cnblogs.com/ggjucheng/archive/2012/11/03/2752082.html

 

如何执行一个mysql的sql脚本文件

平时sql语句比较短的情况下,可以通过在mysql shell 界面下一条条的执行并查看输出结果 。如果sql语句比较多的情况下,这种方法就不现实了 。只能通过直接执行sql文件的方式 。

方法一:mysql 调用法

操作方式如下:

mysql u用户名p密码D数据库<【sql脚本文件路径全名】

如果想输出到文件,可以按下面的方式执行:

mysql uroot p123456 -Dtest<d:\test\ss.sql>d:\dd.txt

注:该方法在windows和linux平台下都可以 。

方法二:source 命令法

该方法是先登陆进入mysql控制台,并通过source 命令调用sql文件 ,如:

mysql uroot p123456 -Dtest

mysql> source /opt/test.sql

查看:http://dev.mysql.com/doc/refman/5.1/zh/client-side-scripts.html#batch-commands

你可能感兴趣的:(mysql)