首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

MySQL十四:最大2000W行数据

转载~ 在互联网技术圈中有一个说法:「MySQL 数据量大于 2000 W行,性能会明显下降」。网传这个说法最早由百度传出,真假不得而知。但是却成为了行业内一个默认的标准。...超过2000W行数据一定会导致性能下降吗?我认为是不一定的,虽然说建议不超过2000W,但是我不接受它的建议可不可以?那必然也是可以的。...一、最大到底能存多少数据 先来看看下面这张图,了解一下mysql各个类型的大小 我们知道在MySQL是支持主键自增长的,不考虑其他因素的前提下,理论上只有主键没有用完,中的数据就可以一直增加。...「主键类型为tinyint时」 主键8位,数据最大为255,Id自增超过255就会报错 「由此可見:MySQL能够存储的数据在一定程度上受限与主键的类型。...但是数据量的大小却跟2000W没啥影响,既然百度大佬推荐最大2000W行数据,那肯定不会是空口白话,一定定会有其他影响行数的因素」。

4.2K50
您找到你想要的搜索结果了吗?
是的
没有找到

MySQL原理 - InnoDB限制

本文基于MySQL 5.7 目前OLTP业务的如果是使用MySQL一般都会使用InnoDB引擎,这也是默认的引擎。那么这种引擎有什么限制呢?.../doc/refman/5.7/en/innodb-parameters.html#sysvar_innodb_page_size 基本个数限制MySQL5.6.9以后的版本,一个最大列个数...(包含虚拟列,虚拟列是MySQL5.7的新特性)为1017,在之前的版本是1000 一个最大索引数量(非主键索引)为64个 复合索引最多可以包括16个列,超过会报错:ERROR 1070 (42000...如果这个配置是false,最大是767bytes。如果索引的字段,总长度超过这个限制,建或者修改就会报错。 如果更改了配置或者行格式,导致最大限制从3072 bytes变为767bytes。...对于现有的这个限制是会生效的,但是已有的索引不会受影响,就是不能新建而已。

1.4K30

MySQL-操作

如果UPDATE和DELETE操作没有添加WHERE条件,则可以使用LIMIT来限制更新和删除的数量。...分组与聚合函数 分组 在MySQL中,可以使用GROUP BY 根据一个或多个字段进行分组,字段值相同的为一组。另外对于分组的数据可以使用HAVING进行条件筛选。...函数名 描述 COUNT() 返回参数字段的数量,不统计为NULL记录 SUM() 返回参数字段值和 AVG() 返回参数字段的平均值 MAX() 返回参数字段的最大值 MIN() 返回参数字段的最小值...数组返回 JSON_OBJECTAGG() 将符合条件的参数字段作为单个JSON对象返回 运算符 常用数学函数 运算符 描述 CEIL(x) 返回大于等于x的最小整数 FLOOR(x) 返回小于等于x的最大整数...RAND() 默认返回0到1之间的随机数,包括0和1 比较函数 函数 描述 IN() 比较一个值是否在一组给定的集合内 NOT IN() 比较一个值是否不再一组给定的集合内 GREATEST() 返回最大的一个参数值

2K10

MySQL&约束&事务

DQL操作 排序 # 通过 ORDER BY 子句,可以将查询出的结果进行排序(排序只是显示效果,不会影响真实数据) SELECT 字段名 FROM 名 [WHERE 字段 = 值] ORDER...; SELECT 聚合函数(字段名) FROM 名; 聚合函数 作用 count(字段) 统计指定列不为NULL的记录行数 sum(字段) 计算指定列的数值和 max(字段) 计算指定列的最大值 min...所以使用时注意不要使用带有null的列进行统计 SELECT COUNT(dept_name) FROM emp; #2 查看员工总薪水、最高薪水、最小薪水、薪水的平均值 -- sum函数求和, max函数求最大...where 进行分组前的过滤,where 后面不能写 聚合函数 having having 是分组后的过滤,having 后面可以写 聚合函数 SQL约束 约束的作用: 对表中的数据进行进一步的限制...MySQL 事务隔离级别 一个数据库可能拥有多个访问客户端,这些客户端都可以并发方式访问数据库. 数据库的相同数据可能被多个事务同时访问,如果不采取隔离措施,就会导致各种问题, 破坏数据的完整性。

1.2K30

mysql-查询

语法: 一、查询的语法    SELECT 字段1,字段2... ...select distinct order by limit 1.找到:from 2.拿着where指定的约束条件,去文件/中取出一条条记录 3.将取出的一条条记录进行分组group by,如果没有...group by,则整体作为一组 4.将分组的结果进行having过滤 5.执行select 6.去重 7.将结果按条件排序:order by 8.限制结果的显示条数 创建公司员工的字段和数据类型...%小时任意多字符,_表示一个字符 5.逻辑运算符:在多个条件直接可以使用逻辑运算符 and or not 验证结果:where条件约束 1 :条件查询 mysql> select id,name from...operation | | sale      | | teacher   | | 公关部    | +-----------+ 4 rows in set (0.00 sec) (3)聚合函数 max()求最大

4.3K20

MySQL恢复步骤详解

万幸的是,只是写花了,而不是哪位大神在DB里面玩drop table。...虽然已经很久没进行恢复了,但大致步骤都还在脑海中,没花多久就搞定了~ 言归正传,记录一下恢复的步骤和关键点,提醒自己也提醒大家。...第四步: 在主库上将写花的改名,其目的有二个,其一,停止对这个的写入(当然这对业务会有一定的影响,会出现一段时间内的写入失败报警,需要提前和业务部门联系好),其二,一旦恢复失败,至少还有一个写花的存在...### 快速的方法可以按照如下操作,在还原机上的命令 mysql -uusername -ppassword -S /tmp/mysql.sock dbname tablename | mysql -uusername...如果一切都没有问题之后,我们需要将刚才rename的drop掉,整个恢复操作就算大功告成了。

2.2K10

mysql存储量

网上常说mysql2kw就需要考虑分了,但生产中我们也用过2亿的,而且毫无压力。所以记录一下为什么2kw就要分是依据什么原理,生产大概要注意什么。...1 存储原理这里只关注B+树的存储图片在MySQL中,为了保存内存地址,通常使用6字节来存储指针。...但是一般mysql到了第三层就差不多了,只需要通过3次IO,就可以读取到数据所在的叶子结点的页。至于提取需要的记录,则需要在内存中进行一次条件匹配。2 扩展这里2kw的原理就是这样的假设前提的。...如果是个小,一条数据不够1k,如0.1k,则第三层为2kw*2=2亿,3次IO也是问题。如果就是1k,256亿条以内的记录,也就是4次IO,真的有想象中的那么不堪吗?不一定!...4、为什么6 byte存储地址这是因为MySQL在32位系统上使用4字节来存储指针,而在64位系统上使用8byte来存储指针。为了在不同系统上保持兼容性,MySQL选择了6byte作为指针的存储长度。

26820

MySQL查询详细解析

则整体作为一组   4,having:将分组的结果进行having过滤   5,select:执行select   6,distinct:去重   7,order by:将结果按条件排序   8,limit:限制结果的显示条数...*12,是因为我们通过查询语句查询出来的也是一张,但是这个是不是内存当中的一个虚拟,并不是我们硬盘中存的那个完整的,对吧,虚拟是不是也有标题和记录啊, 既然是一个,我们是可以指定这个虚拟的标题的...name, salary*12 AS Annual_salary FROM employee; #as + 新字段名,就是起一个别名的意思,上面的那个salary*12的字段名也是一个别名,只不过不直观,是MySQL...100   3,in(80,90,100)   4,like 'ee%' 模糊匹配,%表示任意多字符,_表示一个字符   5,逻辑运算符:在多个条件直接可以用逻辑运算符 and or not #1:条件查询...group by post;#按照岗位分组,并查看每个组有多少人,每个人都有唯一的id号,我count是计算一下分组之后每组有多少的id记录,通过这个id记录我就知道每个组有多少人了 关于集合函数,mysql

2.6K11

MySql系列(1)——查询

1.查询所有字段 SELECT * FROM 名称; 例如查询book中所有的数据: select * from book; ?...2.查询指定字段 SELECT 字段1,字段2,字段3...FROM 名称; 例如查询book中的书籍名称: select bookName from book; ?...3.WHERE条件查询 SELECT * FROM 名称 WHERE 条件表达式; 例如查询book中书价格低于60的书籍名称: select bookName from book where...4.带In关键字查询 SELECT * FROM 名称 WHERE 字段 [NOT] IN (元素1,元素2,元素3); 注意:该字段查询结果后是元素1,元素2和元素3; 例如查询book中书的价格是...7.空值查询 SELECT * FROM 名称 WHERE 字段 IS [NOT] NULL;(此处的IS不可改为=) 例如查询中年龄为null的数据:select * from stu where

2.5K30

MySQL查询(精简笔记)

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。...MySQL提供了功能强大、灵活的语句来实现这些操作,下面将介绍如何使用SELECT语句查询数据中的一列或多列数据、使用集合函数显示查询结果....首先,MySQL从数据中查询数据的基本语句为SELECT语句,SELECT语句的基本格式如下: MariaDB [none]> SELECT [predicate] { * | table.* |...,而只是对数据进行总结.MySQL提供一些查询功能,可以对获取的数据进行分析和报告,这些函数的功能有:计算数据中记录行数的总数、计算某个字段列下数据的总和,以及计算中某个字段下的最大值、最小值或者平均值...功能:max()返回指定列中的最大值 实例1: 在test1中,查询item_price字段中最大的数据,SQL语句如下: MariaDB [lyshark]> select * from test1

4.8K10
领券