360SDN.COM

首页/MySQL/列表

MySQL优化|数据库的备份和恢复|MySQL高级

来源:铭贤学子  2017-09-12 14:29:11    评论:0点击:

MySQL优化

1.选择合适的数据类型

  1)能用数字,不用字符串

  2)char    定长        char(10)      hello   10

     varchar 变长        varchar(10)   hello   5

     text    没限制

     建议:普通字符串(varchar) 文章(text)

2.每张表必须有主键,而且最好是短主键

3.适当的添加唯一约束(字段没有重复值)

4.避免数据库中出现NULL值(not null、default)

5.适当的添加外键(不加外键)

  如果表添加了外键,会影响增删改的速度

6.避免出现select * 这样的查询语句

7.经常充当条件的字段添加索引

8.最好拿数字的字段充当条件

9.避免在索引字段上使用聚合函数(索引会失效) 

10.尽可能少用like模糊查询(Sphinx)

11.尽可能少用子查询(用内连接代替)

12.数据量太大,数据库运行效率低(拆分表)

   1)拆分字段:字段太多,个别字段数据量大

   2)拆分记录:记录太多

13.访问量太高,数据库运行效率低

   1)主从数据库(MySQL功能)

   2)网站缓存

   3)网站的静态化

14.负载均衡(硬件设备)

--------------------------------------------------------------------------

数据库的备份与还原

1.数据库备份

  1)打开命令提示符窗口(Win7以管理员方式打开)

  2)执行如下命令

     mysqldump -u用户名 -p密码 库名>d:/aaa.sql

     mysqldump -uroot -proot test>d:hello.sql

2.数据库还原

  1)登录mysql数据库

  2)创建一个数据库,并进入该库

  3)执行如下语句

     source d:/hello.sql

--------------------------------------------------------------

总结

1.视图View

2.触发器Trigger

3.存储过程Procedure

4.T-SQL编程

5.索引Index

6.存储引擎Engine

7.事务Transaction

索引Index(数据库优化)

作用:提高表的where条件查询语句的速度

说明:索引都是施加给表中的字段的

select * from 表名 where  字段 = 值;

什么样的字段应该添加索引:经常充当条件的字段

索引分类

1.主键索引:唯一、非空、一张表只有一个主键索引

2.唯一索引:唯一

3.普通索引:没有限制

4.全文索引:text

创建索引

1.主键索引

  建表的同时,直接指定主键约束

2.唯一索引

  1)建表的同时,之间指定唯一约束

  2)create unique index 索引名 in 表名(字段);

3.普通索引

  create index 索引名 on 表名(字段);

  create index t_index on bbsinfo(title) ;

4.全文索引

  create fulltext index 索引名 on 表名(字段);

  create fulltext index t_index on bbsinfo(title);

  说明:

  MySQL5.7:在任何情况下出啊见全文索引都没问题

  MySQK5.5:只有在MyISAM的引擎下才会成功(表的类型不支持全文索引)

给bbsInfo表的title字段添加唯一索引

create unique index t_index on bbsInfo(title);

查看某张表的所有索引信息

show index from 表名;

删除表的索引

drop index 索引名 on 表名;

drop index t_index on bbsInfo;

什么样的字段应当添加什么样的索引?

1.主键索引

2.唯一索引

3.普通索引

索引注意

1.什么样的字段应当添加索引?

2.什么样的字段应当添加什么样的索引?

索引的使用场合

1.经常充当条件的字段应当添加索引

2.应当在设计数据库时,直接考虑索引

--------------------------------------------------------------------------------------------------------------------------------------------------------------

存储引擎Engine(表的类型)

存储引擎的种类

1.ISAM :查询速度快、支持全文索引、不支持外键、不只是事物操作

2.MyISAM:ISAM升级

3.Memory:速度快、数据管理不稳定、数据驻留在内存、断电后数据全部丢失

4.InnoDB:速度较慢、不支持全文索引、支持外键、支持事物

可用的存储引擎

MyISAM:内容管理系统

InnoDB:技术型网站

网站种类的分类、

1.内容管理系统(CMS) Content Manager System

  新闻、官网(门户网站)、房屋买卖、招聘...

2.技术型网站

  bbs blog webo oa mail...

设置数据库的存储引擎

1.修改my.ini配置文件

  default-storage-engine = 存储引擎名

  注意:重启Mysql服务(配置文件不区分大小写)

2.建表的同时,直接指定表的存储引擎

  MySQL5.0以前的写法

  create table 表名

  (

  字段 数据类型 约束,

  字段 数据类型 约束,

  字段 数据类型 约束,

   )type = 存储引擎;

  

  MySQL5.0及以后的写法

  create table 表名

  (

  字段 数据类型 约束,

  字段 数据类型 约束,

  字段 数据类型 约束,

   )engine = 存储引擎;

  

例子:建表并指定存储引擎,将存储引擎设置为MyISAM

create table helloInfo

(

id int auto_increment primary key,

title  varchar(100) not null,

content text not null

)engine=MyISAM;

查看表的存储引擎

show create table 表名;

show create table bbsInfo;

______________________________________________________________________________________________________________________________________________________________

事务Transaction 

作用:保证数据的完整性

特性:原子性  一致性  隔离性  持久性 

开启事务

start transaction

结束事务

commit;提交事务(成功)

rollback;回滚事务(失败)

事务的最终状态

commit;成功

rollback;失败

清空表

delete from 表名;        可恢复      支持事务              

truncate table 表名;     不可恢复    不支持事务 

start transaction;

delete from bbsinfo;

rollback;

事务的使用场合

1.项目中与金钱相关的功能

2.调试服务器中的数据库

不支持的事务的语句

create  alter  drop  truncate

支持事务的语句

insert update delete 

注意:

只有InnoDB的引擎支持事务

例子:

     删除ttnews 库下的某一个新闻分类(newsTypes)typeId=3

     1)删除评论

     2)删除新闻

     3)删除分类

扫一扫,关注一下吧!

阅读原文

为您推荐

友情链接 |九搜汽车网 |手机ok生活信息网|ok生活信息网|ok微生活
 Powered by www.360SDN.COM   京ICP备11022651号-4 © 2012-2016 版权