您好,欢迎来到尚车旅游网。
搜索
您的当前位置:首页MySQL数据库如何分区、分表?什么时候考虑使用分区?

MySQL数据库如何分区、分表?什么时候考虑使用分区?

来源:尚车旅游网
MySQL数据库怎样分区分表?

(1)问题分析:

考官主要想考察学员对MySQL数据的理解和拓展,有没有深入的去理解过数据库,有没有在发中对数据库过优化。

(2)核心答案讲解:

分区:就把一张表的数据分成N个区块,在逻辑上看最终只一张表,但底层由N个物理区块组成的

分表:就把一张表按一定的规则分解成N个具有独立存储空间的实体表。系统读写时需要根据定义好的规则得到对应的字表明,然后操作它分表可以通过三种:MySQL集群、自定义规则(根据一定的算法(如用hash的,也可以用求余(取模)的)让用户访问不同的表。)和merge存储引擎。

分区有四类:

RANGE分区:基于属于一个给定连续区间的列值,把多行分配给分区。

LIST分区:类似于按RANGE分区,区别在于LIST分区基于列值匹配一个离散值集合中的某个值来进行选择。

1

HASH分区:基于用户定义的表达式的返回值来进行选择的分区,该表达式使用将要入到表中的这些行的列值进行计算。这个函数可以包含MySQL中有效的、产生非负整数值的任何表达式。

KEY分区:类似于按HASH分区,区别在于KEY分区只支持计算一列或多列,且MySQL器其自身的哈希函数。必须有一列或多列包含整数值。

(3)问题扩展:

什么时候考虑使用分区?

①一张表的查询速度已经慢到影响使用的时候;②sql经过优化;③数据量;④表中的数据分段的;⑤对数据的操作往往只涉及一部分数据,而不所有的数据。

分区解决的问题:

①主要可以提升查询效率。

什么时候考虑分表

①一张表的查询速度已经慢到影响使用的时候;②sql经过优化;③数据量;④当频繁入或者联合查询时,速度变慢。

分表解决的问题:

2

①分表后,单表的并发能力提高了,磁盘I/O性能也提高了,写操作效率提高了;②查询一次的时间短了;③数据分布在不同的文件,磁盘I/O性能提高;④读写锁影响的数据量变小;⑤入数据库需要重新建立索引的数据减少。

(4)结合中使用:

3

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- sceh.cn 版权所有 湘ICP备2023017654号-4

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务