MYSQL代码1170错误,寻帮助,本人新手!

MYSQL代码1170错误,寻帮助,本人新手!,第1张

首先,你指定那个primary key的时候,如果想要把多个字段指定为主键,不是这样写的,具体的写法你查下MySQL手册看看,还有你在创建表的时候,表中的字段不用指定编码方式,因为你的这个数据库本来就已经指定了数据库编码方式,最后就是你那个id字段给的值可能会大了些,你给个默认值就行了,也就是int就行了,不用写长度,然后其它的倒没什么;

我给个标准的给你看看吧

create table huiyuan(

id int not null auto_increment primary key,yixiang varchar(300) not null,lixiang varchar(255) not null

)

这样就可以把表创建好啦;

遇到这样的问题,先把单词意思弄懂吧,一般的错误提示都蛮清晰,列 pass 在使用于key规范的时候没有key长度。 我使用的是sql server,但是我想mysql里面问题原因差不多,看看这个psid是不是限定了什么

B+树在B树的基础上的一中优化,InnoDB和MylSAM存储引擎都是用B+树实现索引结构

B树的索引和关键字key-data存储在磁盘里面,然后被磁盘IO *** 作读入内存,如果这个data很大的话,每次加到内存中的key就会减少, 这会使得B数的高度增加,这样还是会增加磁盘IO查询

为了解决这个问题, B+树将所有数据记录节点按照键值的大小顺序存放在同一层叶子节点上, 而非叶子节点只存储key值信息,这样可以大大增加每个节点存储的key值的数量,降低B+树的高度

非叶子节点只存键值信息,所有叶子节点之间都有一个链指针,数据记录都存在叶子节点上如图:

InnoDB存储引擎最小的存储单元是(页), 每一页的大小是16k(即16384个字节),每一行数据大概就是1k左右,那么一页就可以存16条数据

那么在InnoDb中2层的高度的B+树能存多少条数据,我们来分析一下:

在InnoDB中每个指针为6个字节,一个键值4-8个字节(如:Id为主键 ->bigInt类型是8字节)那么加起来就是14个字节, 那么一页就能存16384 / 14 =1170个指针, 所以2层的B+树能存1170*16=18720条数据

在InnoDB在B+树高度一般为3层所以1170 * 1170 * 16= 21902400 条数据,能存千万级别的数据


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7420714.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-05
下一篇 2023-04-05

发表评论

登录后才能评论

评论列表(0条)

保存