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常用于删除数据。