安全基础-SQL作业

1,严格模式,导致MySQL5.7插入用户表的方式新建用户失败,那么如何修改严格模式,让他插入成功?

查看 MySQL 是否开启严格模式:

打开 MySQL 配置文件 my.cnf(Windows 为 my.INI).

搜索 sql-mode 如果搜索不到就代表 非严格模式 .

搜索到了就代表开启了严格模式, 例如:

sql-mode=NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

一: 开启 关闭严格模式

开启严格模式:

vi /etc/my.cnf #编辑 MySQL 配置文件

搜索 sql-mode 关键字, 若没有, 在文件尾添加一行

替换成:

sql-mode=NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTIO

service mysqld restart 重启 MySQL

关闭严格模式:

vi /etc/my.cnf #编辑 MySQL 配置文件

搜索 sql-mode 关键字. 注释

sql-mode 相关语句

#sql-mode=NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTIO

service mysqld restart 重启 MySQL
 

2,N叉树的N是否可以人为修改?

可以修改

1, 通过改变 key 值来调整

N 叉树中非叶子节点存放的是索引信息,索引包含 Key 和 Point 指针。Point 指针固定为 6 个字节,假如 Key 为 10 个字节,那么单个索引就是 16 个字节。如果 B + 树中页大小为 16 K,那么一个页就可以存储 1024 个索引,此时 N 就等于 1024。我们通过改变 Key 的大小,就可以改变 N 的值。

2, 改变页的大小

页越大,一页存放的索引就越多,N 就越大。

数据页调整后,如果数据页太小层数会太深,数据页太大,加载到内存的时间和单个数据页查询时间会提高,需要达到平衡才行。

3,16kb page目前而言,是否可以修改?

Page是MySQL Innodb存储的最基本结构,也是Innodb磁盘管理的最小单位,了解page的一些特性,可以更容易理解MySQL。

innodb_page_size只能在初始化MySQL实例之前配置,不能在之后修改。如果没有指定值,则使用默认页面大小初始化实例。

1.page大小(16*1024=16384)- 必要信息(File Header38字节+page header56字节+虚拟最大最小记录26字节+Page Directory4字节+File Trailer8字节)=16252字节

2.约每4条记录占用一个slot,一个slot大小占用2字节

3.row header(5字节+可变长+非空占位符)+ 主键key长度(如果没有显示声明默认会创建6字节row id)+ trxid6字节+ rollptr7字节

4.假如单行长度计算公式为:row header5字节 + 主键索引列4字节 + 指针4字节 = 13字节

单个page最多能容纳最多行数为 单行长度N+N/4*2 = 16252,
 

4,delete和drop的不同

drop主要用于删除结构
例如删除数据库:drop database XX,删除表 drop table XX。字段也是结构的一种,也可以使用drop了?对的,但是我们改变了表结构要先alter方法。例如,我们要删除student表上的age字段的信息,可以这样写:alter table student drop age

delete主要用于删除数据
举个例子,要删除 student表上名字为‘张三’的所有信息:delete from student where name=‘张三’。这种情况下用delete,由此可见delete常用于删除数据。
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值