加入收藏 | 设为首页 | 会员中心 | 我要投稿 青岛站长网 (https://www.0532zz.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

老司机也该掌握的MySQL优化指南

发布时间:2018-10-02 23:03:51 所属栏目:MySql教程 来源:DBAplus社群
导读:【新品产上线啦】51CTO播客,随时随地,碎片化学习 当MySQL单表记录数过大时,增删改查性能都会急剧下降,所以我们本文会提供一些优化参考,大家可以参考以下步骤来优化: 一、单表优化 除非单表数据未来会一直不断上涨,否则不要一开始就考虑拆分,拆分会

分区的好处是:

  •  可以让单表存储更多的数据;
  •  分区表的数据更容易维护,可以通过清楚整个分区批量删除大量数据,也可以增加新的分区来支持新插入的数据,另外,还可以对一个独立分区进行优化、检查、修复等操作;
  •  部分查询能够从查询条件确定只落在少数分区上,速度会很快;
  •  分区表的数据还可以分布在不同的物理设备上,从而搞笑利用多个硬件设备;
  •  可以使用分区表赖避免某些特殊瓶颈,例如InnoDB单个索引的互斥访问、ext3文件系统的inode锁竞争;
  •  可以备份和恢复单个分区。

分区的限制和缺点:

  •  一个表最多只能有1024个分区;
  •  如果分区字段中有主键或者唯一索引的列,那么所有主键列和唯一索引列都必须包含进来;
  •  分区表无法使用外键约束;
  •  值会使分区过滤无效;
  •  所有分区必须使用相同的存储引擎。

分区的类型:

  •  RANGE分区:基于属于一个给定连续区间的列值,把多行分配给分区。
  •  LIST分区:类似于按RANGE分区,区别在于LIST分区是基于列值匹配一个离散值集合中的某个值来进行选择。
  •  HASH分区:基于用户定义的表达式的返回值来进行选择的分区,该表达式使用将要插入到表中的这些行的列值进行计算。这个函数可以包含MySQL中有效的、产生非负整数值的任何表达式。
  •  KEY分区:类似于按HASH分区,区别在于KEY分区只支持计算一列或多列,且MySQL服务器提供其自身的哈希函数。必须有一列或多列包含整数值。

分区适合的场景有:

  •  最适合的场景数据的时间序列性比较强,则可以按时间来分区,如下所示: 
  1. CREATE TABLE members (  
  2. firstname VARCHAR(25) NOT ,  
  3. lastname VARCHAR(25) NOT ,  
  4. username VARCHAR(16) NOT ,  
  5. email VARCHAR(35),  
  6. joined DATE NOT  
  7. )PARTITION BY RANGE( YEAR(joined) ) (  
  8. PARTITION p0 VALUES LESS THAN (1960),  
  9. PARTITION p1 VALUES LESS THAN (1970),  
  10. PARTITION p2 VALUES LESS THAN (1980),  
  11. PARTITION p3 VALUES LESS THAN (1990),  
  12. PARTITION p4 VALUES LESS THAN MAXVALUE  
  13. ); 

(编辑:青岛站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读