没有合适的资源?快使用搜索试试~ 我知道了~
mysql分表分库demo
资源推荐
资源详情
资源评论
场景
当 我 们 业 务 数 据 库 表 中 的 数 据 越 来 越 多 , 如 果 你 也 和 我 遇 到 了
以 下 类 似 场 景 。
� 数据的插入,查询时长较长
� 后续业务需求的扩展 在表中新增字段 影响较大
� 表中的数据并不是所有的都为有效数据 需求只查询时间区间内的
评估表数据体量
我 们 可 以 从 表 容 量 / 磁 盘 空 间 / 实 例 容 量 三 方 面 评 估 数 据 体 量 ,
接 下 来 让 我 们 分 别 展 开 来 看 看
表容量
表 容 量 主 要 从 表 的 记 录 数 、 平 均 长 度 、 增 长 量 、 读 写 量 、 总 大
小 量 进 行 评 估 。 一 般 对 于 O L T P 的 表 , 建 议 单 表 不 要 超 过
2 0 0 0 W 行 数 据 量 , 总 大 小 1 5 G 以 内 。 访 问 量 : 单 表 读 写 量 在
1 6 0 0 / s 以 内
查 询 行 数 据 的 方 式 : 我 们 一 般 查 询 表 数 据 有 多 少 数 据 时 用 到 的
经 典 s q l 语 句 如 下 :
s e l e c t c o u n t ( * ) f r o m t a b l e _ n a m e ;
s e l e c t c o u n t ( 1 ) f r o m t a b l e _ n a m e ;
s e l e c t c o u n t ( 主 键 ) f r o m t a b l e _ n a m e ;
题 外 :
count() 是一个聚合函数,函数的参数不仅可以是字段名,也可以是其他任意表达式,
该函数作用是统计符合查询条件的记录中,函数指定的参数不为 NULL 的记录有多少个。
s e l e c t c o u n t ( 主 键 ) f r o m t a b l e _ n a m e ;
在 通 过 c o u n t 函 数 统 计 有 多 少 个 记 录 时 , M y S Q L 的 s e r v e r
层 会 维 护 一 个 名 叫 c o u n t 的 变 量 。
s e r v e r 层 会 循 环 向 I n n o D B 读 取 一 条 记 录 , 如 果 c o u n t 函
数 指 定 的 参 数 不 为 N U L L , 那 么 就 会 将 变 量 c o u n t 加 1 , 直
到 符 合 查 询 的 全 部 记 录 被 读 完 , 就 退 出 循 环 。 最 后 将 c o u n t
变 量 的 值 发 送 给 客 户 端 。
I n n o D B 是 通 过 B + 树 来 保 持 记 录 的 , 根 据 索 引 的 类 型 又 分 为
聚 簇 索 引 和 二 级 索 引 (又称辅助索引), 它 们 区 别 在 于 , 聚 簇 索 引
的 叶 子 节 点 存 放 的 是 实 际 数 据 , 而 二 级 索 引 的 叶 子 节 点 存 放 的
是 主 键 值 , 而 不 是 实 际 数 据 。
如果表里有二级索引时,InnoDB 循环遍历的对象就不是聚簇索引,而是二级索引。
这是因为相同数量的二级索引记录可以比聚簇索引记录占用更少的存储空间,所以二级
索引树比聚簇索引树小,这样遍历二级索引的 I/O 成本比遍历聚簇索引的 I/O 成本
小,因此「优化器」优先选择的是二级索引。
s e l e c t c o u n t ( 1 ) f r o m t a b l e _ n a m e ;
如果表里只有主键索引,没有二级索引时。
InnoDB 循环遍历聚簇索引(主键索引),将读取到的记录返回给 server 层,但是不会
读取记录中的任何字段的值,因为 count 函数的参数是 1,不是字段,所以不需要读取
记录中的字段值。参数 1 很明显并不是 NULL,因此 server 层每从 InnoDB 读取到一
条记录,就将 count 变量加 1。
所以 count(字段)的效率没有 count(1)的效率高。
但是,如果表里有二级索引时,InnoDB 循环遍历的对象就二级索引了。
s e l e c t c o u n t ( * ) f r o m t a b l e _ n a m e ;
从图二可以看出当你使用 count(*) 时,MySQL 会将 * 参数转化为参数 0 来处理。
剩余23页未读,继续阅读
资源评论
a584429317
- 粉丝: 2
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功