关于MySQL极限值的初步验证纠错(二)
之前写了一篇自己的简单测试总结:关于MySQL极限值的初步验证纠错
今天在这个基础上继续做一些分析,如果说最权威,最全面的材料,那应该非官方文档莫属了,而要把文档看明白,理解清楚,那就只有大量的练习了,目前我是没发现捷径可走,如果有的话,请告知。
要想较为全面的了解MySQL中的极限值,或者叫做边界值,有很多需要考虑的点,我们有些可以做测试,有些就需要参考文档了。比如一个表里的列最多是1017个,注意这里是最多,如果是varchar型,那就达不到1017,但是最大值1017的结论还是成立的。而如果要测试MySQL innoDB存储引擎的表最大可以有多大,那么这类问题,我是完全没法通过程序和数据来模拟的,官方文档里有,我们完全可以参考。
数据库的数量,表的数量:
官方的链接在这里:https://dev.mysql.com/doc/mysql-reslimits-excerpt/5.7/en/database-count-limit.html
简单来说,就是MySQL说我随意。
当然个别的云厂商还是会做一些资源的限制。
表空间的极限值:
最小的表空间大小:10M
最大的表空间大小:基于存储引擎和页的大小
The minimum tablespace size is slightly larger than 10MB. The maximum tablespace size depends on the InnoDB
page size,
The maximum tablespace size is also the maximum size for a table.
所以说,默认页是16k,那么表空间的最大值就是64T,所以说,理论值可以那么大,但是我们绝对不会那么干。
InnoDB Page Size |
Maximum Tablespace Size |
---|---|
4KB |
16TB |
8KB |
32TB |
16KB |
64TB |
辅助索引的个数
A table can contain a maximum of 64 secondary indexes.
没错,最多的辅助索引个数是64个。
复合索引的列
A maximum of 16 columns is permitted for multicolumn indexes. Exceeding the limit returns an error.
复合索引的列最多是16个。
索引键前缀长度
主要还是和参数innodb_large_prefix有关。默认是767字节,如果开启了参数,是3072,这个地方在5.6和5.7的描述有一些细小的偏差。
一些补充:
SHOW TABLE STATUS的结果只是一个估算值,不是完全精确的值。
5.7.18版本前的select count(*)的处理机制已经不同了,虽然方向是改进,其实性能还略有下降,已有同学提交了相关的bug.
SELECT COUNT(*) 和SELECT COUNT(1) 没有性能差别
Windows下都是默认的小写,迁移到Unix,Linux也需要注意。
- Java中的Socket编程学习
- 【视频】自然框架之分页控件的使用方法(二) 下载、DLL说明和web.config的设置
- Jsp开发中遇到的中文乱码问题及解决方法
- 开发中最常见的Java字符串问题总结
- .net异步性能测试(包括ASP.NET MVC WebAPI异步方法)
- Java 8的函数式编程学习
- 在C++中反射调用.NET(一) 反射调用第一个.NET类的方法
- QuickPager分页控件,最简单的设置代码
- Java中有关Null的9问题
- 在C++中反射调用.NET(二) 定义数据接口 绑定委托方法 使用SOD DTO 对象 将.NET对象转换到C++结构体为何不使用序列化的问题
- Java阻塞队列线程集控制的实现方法
- 【自然框架】QuickPager分页控件,新增一种分页方式——伪URL分页(Postback版)
- 我们的漏洞Webug 3.0中级进阶攻略(上)
- 【自然框架】QuickPager分页控件的总体介绍和在线演示
- MySQL 教程
- MySQL 安装
- MySQL 管理与配置
- MySQL PHP 语法
- MySQL 连接
- MySQL 创建数据库
- MySQL 删除数据库
- MySQL 选择数据库
- MySQL 数据类型
- MySQL 创建数据表
- MySQL 删除数据表
- MySQL 插入数据
- MySQL 查询数据
- MySQL where 子句
- MySQL UPDATE 查询
- MySQL DELETE 语句
- MySQL LIKE 子句
- mysql order by
- Mysql Join的使用
- MySQL NULL 值处理
- MySQL 正则表达式
- MySQL 事务
- MySQL ALTER命令
- MySQL 索引
- MySQL 临时表
- MySQL 复制表
- 查看MySQL 元数据
- MySQL 序列 AUTO_INCREMENT
- MySQL 处理重复数据
- MySQL 及 SQL 注入
- MySQL 导出数据
- MySQL 导入数据
- MYSQL 函数大全
- MySQL Group By 实例讲解
- MySQL Max()函数实例讲解
- mysql count函数实例
- MYSQL UNION和UNION ALL实例
- MySQL IN 用法
- MySQL between and 实例讲解
- Android利用RecyclerView编写聊天界面
- 5行代码实现微信消息推送,springboot实现微信推送,java微信推送
- Android控件ListView使用方法详解
- android ContentResolver获取手机电话号码和短信内容
- 借助云开发实现小程序列表页(包含json数据的请求和解析)
- Android shape 绘制图形的实例详解
- 微信小程序实现时间轴和地区列表的功能
- Android ListView的Item点击效果的定制
- Android Application存取公共数据的实例详解
- Android Handler的详解及实例
- Android 通过Intent调用系统拍照程序出现图片太小的问题解决办法
- Android Bitmap压缩方式分析
- Android自定义View实现游戏摇杆键盘的方法示例
- 详解Android Libgdx中ScrollPane和Actor事件冲突问题的解决办法
- Android ImageView的selector效果实例详解