(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
本站由北京市万商天勤律师事务所王兴未律师提供法律服务