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

来源:互联网 发布:yd外设淘宝店 编辑:程序博客网 时间:2024/06/06 01:05

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

核心且常用的字段,事宜建成定长放在一张表里。而那些用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用自己改的密码就可以了。

原创粉丝点击