尽量不要使用select * ,因为会增加编译时间(不过很多数据库都对select * 进行了优化),有时也会查出并不需要的数据,增加网络和服务器负担
尽可能把多条sql语句合并成一条,因为每条sql语句的发送、编译、执行、返回结果都需要时间
尽量不要在where子句中使用1=1,这会迫使数据库服务器进行全表扫描(但很多数据库也对这种情况进行了优化)
尽可能使用 between and ,因为数据库已经对它进行了优化
数据库一般采用自后向前的顺序解析where子句,所以表的连接条件最好写在最前面,那些可以过滤掉大量数据的条件要写在最后
通过编程语言查询数据时最好使用带占位符的sql语句,数据库会预先编译好这些sql语句并保存起来供重复使用,效率高而且可避免sql注入漏洞
(如果一个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服务
找回密码成功
共有条评论 网友评论