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

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)删除分类

扫一扫,关注一下吧!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值