一点点的mysql优化和linux新安装mysql修改密码

本文介绍了数据库优化的四个关键点:表结构优化,通过定长和变长字段分离、常用字段和不常用字段分离来减少查询成本;添加冗余字段实现反范式化,减少关联查询;合理选择字段类型以提升效率;建立索引,使用Btree和Hash索引来加速查询、排序及分组统计。

一,第一个优化点讲的建表:定长和变长分离,常用字段和不常用字段分离

核心且常用的字段,事宜建成定长放在一张表里。而那些用varchar,test这种变长字段的单放一张表,用主键与放核心字段的表关联起来;

常用字段和不常用字段分离,这就要需要考虑业务场景了,查询频度低的字段单拆出来。

 

二,添加冗余字段,反范式。

这块举个博客网站的例子,有一个统计这个人发了多少篇帖子的功能平常来说我们会用主表去关联这个帖子表查询出有几篇。我们可以在这个主表上加个冗余字段。默认为零,他发几篇帖子,我们直接加一。这样统计发了几篇可以直接用这个冗余字段就不在进行关联查询了。


三,字段类型的选择。

字段的优先级:整型>date,time>enum,char>varchar>blob.test,尽量避免用null,不利于索引,得用特殊的字节标注。其实null占据的磁盘空间更大。Mysql5.5以上对null进行了优化,但还是查询不便。


四,建索引。

Btree索引,我听燕十八讲的很抽象化,很容易就懂,搁这就不细讲了。其实就是查数据之前把它弄成树状结构,每个叶子一个数据,叶子下有他这个数据在数据库的位置,查的时候按这个树状结构走获取到数据库的位置,根据数据库位置直接能查出来。大致就是排好序的快速查找结构,

Hash索引,它查的更快,不管多少条数据,理论上都是一下找到,为什么这么快是因为在存数据的时候,它就先计算好你查的数据存在数据库什么地方。取的时候直接拿它数据库的地址,然后就能一次查询出来。但是它也有坏处,无法对范围查询进行优化。Btree索引在这一点就比hash索引好点,它能范围查询。排序(order by)hash索引也是无法优化。

索引不但是能提高查询速度,还能提高排序和分组统计的速度。

 

2.安装mysql7后密码修改

第一次进入mysql的时候可以在 etc下my.cnf文件中加一行skip-grant-tables=1这样可以不用密码登录,在执行update user set authentication_string =password('root'),password_expired = 'N', password_last_changed = now() whereuser = 'root';把密码修改成root。改完以后删除my.cnf 中skip-grant-tables=这一行,在进入MYSQL用自己改的密码就可以了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值