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

mysql 千万级表_千万级的大表!MySQL这样优化更好

发布时间:2022-12-13 10:53:27 所属栏目:MySql教程 来源:
导读:  对于一个千万级的大表,现在可能更多的是亿级数据量,很多人第一反应是各种切分,可结果总是事半功倍,或许正是我们优化顺序的不正确。下面我们来谈谈怎样的优化顺序可以让效果更好。

  MySQL数据库一般都
  对于一个千万级的大表,现在可能更多的是亿级数据量,很多人第一反应是各种切分,可结果总是事半功倍,或许正是我们优化顺序的不正确。下面我们来谈谈怎样的优化顺序可以让效果更好。
 
  MySQL数据库一般都是按照下面的步骤去演化,成本也是由低到高:
 
  1/ SQL优化
 
  1. 避免使用select *
 
  返回结果过多,降低查询的速度;
 
  过多的返回结果,增加数据传输量;
 
  2. 可确定返回记录数的,尽量增加limit n;
 
  3. 尽量少用like查询,会导致索引失效;
 
  2/ 软件优化
 
  1. 选择合理的引擎
 
  MyISAM索引顺序访问方法,支持全文索引,非事务安全,不支持外键,会加表级锁;
 
  InnoDB事务型存储引擎,加行锁,支持回滚,崩溃恢复,ACID事务控制;
 
  2. 正确使用索引
 
  结合适的列表建立索引;
 
  索引值应该不相同,唯一值时效果最好,大量重复效果很差;
 
  不能滥用索引,索引占用空间;
 
  使用短索引,存的索引多,消耗IO更小,能提高查找速度;
 
  3. 字段尽量设置成NOT NULL
 
  NULL占空间,对于Java和OC强类型的,容易千万APP闪退;
 
  4. MySQL分区表
 
  3/ 硬件优化
 
  1. Linux内核用内存开缓存存储数据;
 
  2. 增加应用缓存,例如Memcached、Redis读写性能非常高;
 
  3. 用SSD代替机械硬盘
 
  日志和数据分开存储,日志顺序读写 - 机械硬盘,数据随机读写 - SSD;
 
  4. SSD+SATA混合存储,对热数据缓存,例如:FlashCache;
 
  4/ 架构优化
 
  1. 读写分离
 
  可以把数据库读和写拆开,对应主从服务器,主服务器写操作、从服务器是读操作;
 
  读是一些机器,写是一些机器,二进制文件的主从复制,延迟解决方案;
 
  主服务器写操作的同时,同步到从服务器,保持数据完整性——主从复制;
 
  2. 垂直拆分
 
  根据模块的耦合度,将一个大的系统分为多个小的系统,也就是分布式系统;
 
  字段分成多个表;
 
  3. 水平拆分
 
  分表:数据分成多个表,拆分后的每张表的表头相同;
 
  分库:类型方案有Cobar(阿里开源,无更新)、MyCat(基于Cobar);
 
  总结
 
  尽我们所能去优化SQL吧!它成本最低,却又是一项费时费力的活,需要在技术与业务都熟悉的情况下mysql 优化,用心去优化才能做到最优,优化后效果也是立竿见影的!
 

(编辑:开发网_新乡站长网)

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