文章
当前位置:首页  > MySQL > 正文

查询常用优化&mysql密码

admin    发布于 2018-8-9 14:31:31   浏览()   评论()   收藏(0)

尽量不要使用select  *  ,因为会增加编译时间(不过很多数据库都对select * 进行了优化),有时也会查出并不需要的数据,增加网络和服务器负担

 

尽可能把多条sql语句合并成一条,因为每条sql语句的发送、编译、执行、返回结果都需要时间

 

尽量不要在where子句中使用1=1,这会迫使数据库服务器进行全表扫描(但很多数据库也对这种情况进行了优化)

 

尽可能使用 between  and ,因为数据库已经对它进行了优化

 

数据库一般采用自后向前的顺序解析where子句,所以表的连接条件最好写在最前面,那些可以过滤掉大量数据的条件要写在最后

 

通过编程语言查询数据时最好使用带占位符的sql语句,数据库会预先编译好这些sql语句并保存起来供重复使用,效率高而且可避免sql注入漏洞

 

 

1.1. 账号管理

(如果一个MySQL供多个项目使用,一般为每个项目创建一个账号)

创建账号:create user 'username'@'%'   identified by 'password';

删除账号:drop  user  'username'@'%';

给账号授权:grant  all  privileges  on  dbname.*  to 'username'@'%';

查看授权:show grants for 'username'@'%';

取消授权:revoke  all privileges on  dbname.*  from 'username'@'%';

修改自己的密码(没有登录):mysqladmin -u用户名 -p password  新密码

修改别人的密码(root登录):set  password  for  用户名=password('新密码');

 

找回root账号的密码:

1 my.ini 文件中的[mysqld]下面添加: skip-grant-tables

2 重启MySQL服务( net stop mysql   net start mysql  )

3 使用mysql直接登录,不需要用户名和密码

4 执行update mysql.user set authentication_string=password('root') where user='root' ;

5 执行flush privileges;

6 退出quit

7 删除my.ini文件中的skip-grant-tables

8 重启MySQL服务

找回密码成功


附件下载

上一篇: 查询语句结构执行顺序
下一篇: 相关子查询

共有条评论 网友评论

验证码: 看不清楚?
    JMCMS   版权所有 Copyright © 2028 All Rights Reserved     鲁ICP备15015027号-1    留言    订阅