zoukankan      html  css  js  c++  java
  • MySQL总结二

    sql注入:

    原因:相信用户输入的所有的数据

    解决方法;1. 自己手动去判断转义用户的数据  2. 不要拼接sql语句,使用execute方法,防止sql注入

    事务:四大特性

    1.原子性 2. 一致性 3.隔离性 4.持久性

    开启事务的步骤:1.satrt transaction 2.修改或者删除sql的语句操作  3.完成(commit/rollback)

    存储引擎:

    Innodb:1.5.5版本以上包含 2.支持事务 3.不支持全文索引 4.索引和事务都在同一个文件中

    MyIsam:1.5.5版本以下 2.不支持事务 3.支持全文索引

    memory

    索引:

    作用:为了加快查找的速度

    类比:新华字典的目录,可以将索引理解成一个特殊的文件,没有这个文件,查找会从前往后一一匹配,速度很慢

    分类:

    主键索引:加快查找速度+唯一性+不能为空+ primary key

    创建:alter table t1 change id id int auto_incremeny primary key

    唯一索引:加快查找速度+唯一性+unique(列名)

    创建:create unique index 索引名称 on 表名(列名)

    普通索引:加快查找速度+index(列名)

    创建: create index 索引名称 on 表名(列名)

    删除索引:drop 索引名称 on 表名

    一般在使用频繁的列上加索引

    sql语句使用的规则:

    1.不建议使用 like 进行搜索

    2.组合索引最左前缀(name,email)

    where name and email -- 使用索引
    where name -- 使用索引
    where email -- 不使用索引

    慢日志:

    1.show variables like "%query%";

    2.set global long_query_time = 1;

    3.set global slow_query_log = ON

    普通日志:

    1.show variables like '%general%';

    2. set global general_log = ON

    mysql用户权限管理:

    创建用户:

    create user '用户名'@‘IP地址’ identified by '密码';

    删除用户:

    rename user '用户名'@‘IP地址’ to ‘新用户名’@‘IP地址’

    修改用户
    rename user '用户名'@'IP地址' to '新用户名'@'IP地址';
    修改密码
    set password for '用户名'@'IP地址' = Password('新密码')
    授权:
    grant 权限 on 数据库.表 to '用户'@'IP地址' -- 授权
    grant select on db1.* to 'zekai'@'%';
    grant select on *.* to 'zekai'@'%';
    grant select, insert, delete on db1.* to 'zekai'@'%';

    记住:
    flush privileges

  • 相关阅读:
    【题解】SCOI2007组队
    【题解】Atcoder AGC#16 E-Poor Turkeys
    整数拆分 [dp+多项式插值]
    王子 [费用流]
    [ARC083F] Collecting Balls [建二分图+环套树定向+建拓扑图+树的拓扑序计数]
    [BZOJ3196] 二逼平衡树 [权值线段树套位置平衡树]
    [TJOI2017][bzoj4889] 不勤劳的图书管理员 [线段树套线段树]
    [HNOI2015][bzoj4009] 接水果 [整体二分+扫描线]
    [bzoj3065] 带插入区间第k小值 [重量平衡树套线段树]
    [luogu3676] 小清新数据结构题 [树链剖分+线段树]
  • 原文地址:https://www.cnblogs.com/huanghongzheng/p/11053896.html
Copyright © 2011-2022 走看看