Java知识点总结:想看的可以从这里进入
MD5信息摘要算法,一种被广泛使用的密码散列函数,它最大的特点就是其加密是不可逆的,网上的一些所谓MD5的破解只不过是将一些常见的整理成一个字典,然后去循环对比,如果MD5制定的规则稍复杂就会破解失败。
MD5在实际使用时一定要设计好MD5的规则,否则一旦更改将无法获取原数据,用户使用的是未加密的原数据,在java端按设定的规则进行MD5加密,将加密后的数据和数据库保存的加密过的数据对比,这样就能得知用户数据是否正确。
多次加密增加複雜度,降低破解的可能性
-- 创建用户
CREATE USER 用户名 IDENTIFIED BY '密码'-- 修改当前用户密码
SET PASSWORD = PASSWORD('')-- 修改指定用户密码
SET PASSWORD FOR '用户' = PASSWORD('')-- 重命名
RENAME USER '原名' TO '新名'-- 授权(ALL PRIVILEGES ON *.* 所有权限(除了给其他用户授权没有) 库.表)
GRANT ALL PRIVILEGES ON *.* TO '用户名'
-- 撤销权限
REVOKE ALL PRIVILEGES ON *.* FROM '用户名' -- 查询权限
SHOW GRANTS FOR '用户名'-- 删除用户
DROP USER '用户'
数据的备份能保证重要数据不丢失,便于数据转移。
直接拷贝物理文件
命令行导出
mysqldump -h 主机 -u 用户名 -p 密码 数据库名 表名 >物理磁盘位置/文件名
可以在一些sql操作的软件中直接导出SQL文件
使用EXPLAIN关键字可以模拟优化器执行SQL查询语句,从而知道MySQL是如何处理SQL语句的。分析查询语句或是表结构的性能瓶颈。
EXPLAIN + sql语句
id:标识符
select_type:查询的类型
table:输出结果集的表
partitions:匹配的分区
type:表的连接类型
possible_keys:查询时,可能使用的索引
key:实际使用的索引
key_len:使用的索引字段的长度
ref:列与索引的比较
rows:估计要检查的行数
filtered:按表条件过滤的行百分比
Extra:附加信息
主要关注 type、key、row、extra 等字段。看是否使用了索引,是否扫描了过多的行数,是否出现 Using temporary、Using filesort 等一些影响性能的主要指标。