1、分库分表

很明显,一个主表(也就是很重要的表,例如用户表)无限制的增长势必严重影响性能,分库与分表是一个很不错的解决途径,也就是性能优化途径,现在的案例是我们有一个1000多万条记录的用户表members,查询起来非常之慢,同事的做法是将其散列到100个表中,分别从members0到members99,然后根据mid分发记录到这些表中,牛逼的代码大概是这样子:

复制代码

<?php
for($i=0;$i< 100; $i++ ){
//echo "CREATE TABLE db2.members{$i} LIKE db1.members<br>";
echo "INSERT INTO members{$i} SELECT * FROM members WHERE mid%100={$i}<br>";
}
?>

2、不停机修改mysql表结构

同样还是members表,前期设计的表结构不尽合理,随着数据库不断运行,其冗余数据也是增长巨大,同事使用了下面的方法来处理:

先创建一个临时表: 
/*创建临时表*/ 
CREATE TABLE members_tmp LIKE members

然后修改members_tmp的表结构为新结构,接着使用上面那个for循环来导出数据,因为1000万的数据一次性导出是不对的,mid是主键,一个区间一个区间的导,基本是一次导出5万条吧,这里略去了 
接着重命名将新表替换上去:

/*这是个颇为经典的语句哈*/ 
RENAME TABLE members TO members_bak,members_tmp TO members;

就是这样,基本可以做到无损失,无需停机更新表结构,但实际上RENAME期间表是被锁死的,所以选择在线少的时候操作是一个技巧。经过这个操作,使得原先8G多的表,一下子变成了2G多

另外还讲到了mysql中float字段类型的时候出现的诡异现象,就是在pma中看到的数字根本不能作为条件来查询.感谢zj同学的新鲜分享。

您可能感兴趣的文章:

  • MYSQL IN 与 EXISTS 的优化示例介绍

  • 实现MySQL定时批量检查表repair和优化表optimize table的shell脚本

  • MySQL性能优化之路---修改配置文件my.cnf

  • MySQL5.6基本优化配置

  • 浅析Mysql Join语法以及性能优化

  • MySQL优化必须调整的10项配置

  • mysql数据库优化总结(心得)

  • MySQL Order by 语句用法与优化详解

  • mysql嵌套查询和联表查询优化方法

  • MySQL 百万级分页优化(Mysql千万级快速分页)

  • MySQL配置文件my.cnf中文详解附mysql性能优化方法分享

  • mysql千万级数据大表该如何优化?

  • mysql limit分页优化方法分享

  • mysql优化配置参数

  • MySQL 性能优化的最佳20多条经验分享

  • MySQL数据库优化详解

转载于:https://blog.51cto.com/fccwcom/1583452

MYSQL性能优化分享(分库分表)相关推荐

  1. MySQL数据库性能优化--数据分库分表

    目录 前言 1.什么时候需要分库分表? 1.1.第一次改造 1.2.分库分表的必要性 1.3.第二次改造 2.分库分表应该怎么分? 3.垂直分库会带来哪些问题? 3.1.跨库的关联查询 3.2.分布式 ...

  2. MySQL性能优化(五):分表

    一:为什么要分表? 如果一个表的每条记录的内容很大,那么就需要更多的IO操作,如果字段值比较大,而使用频率相对比较低,可以将大字段移到另一张表中,当查询不查大字段的时候,这样就减少了I/O操作     ...

  3. Mysql系列七:分库分表技术难题之分布式全局唯一id解决方案

    Mysql系列七:分库分表技术难题之分布式全局唯一id解决方案 参考文章: (1)Mysql系列七:分库分表技术难题之分布式全局唯一id解决方案 (2)https://www.cnblogs.com/ ...

  4. MySQL使用Mycat实现分库分表-读写分离

    MySQL使用Mycat实现分库分表-读写分离 Mycat Mycat介绍 什么是Mycat? Mycat架构 Mycat核心概念 MyCat主要解决的问题 MyCat对多数据库的支持 Mycat分片 ...

  5. 再见,数据库!MySQL千亿数据分库分表架构,堪称惊艳!

    孙玄,江湖人称"玄姐",前58集团技术委员会主席,前转转二手交易平台首席架构师.今天想跟你聊点儿企业里那些年薪百万的架构师,他们的架构设计思维是如何升级的. 话不多说,咱们直接来聊 ...

  6. MySQL 慌了!这个分库分表方法论,要火了?

    孙玄,江湖人称"玄姐",前58集团技术委员会主席,前转转二手交易平台首席架构师.今天想跟你聊点儿企业里那些年薪百万的架构师,他们的架构设计思维是如何升级的,以及他们是如何玩转 My ...

  7. 玩转MySQL:一站式解决分库分表后患问题方案

    引言 上篇有关分分库分表一文中已经将分库分表的方法论全面阐述清楚了,总体看下来用一个字形容,那就是爽!(手动狗头)尤其是分库分表技术能够让数据存储层真正成为三高架构,但前面爽是爽了,接着一起来看看分库 ...

  8. MySQL:互联网公司常用分库分表方案汇总!

    本文来源: cnblogs.com/littlecharacter/p/9342129.html 一.数据库瓶颈 不管是IO瓶颈,还是CPU瓶颈,最终都会导致数据库的活跃连接数增加,进而逼近甚至达到数 ...

  9. Mysql运维管理-Mysql增量备份及分库分表备份数据恢复实战12

    1. MySQL数据库的备份与恢复 1.1 Mysqldump的工作原理? 利用mysqldump命令备份的过程,实际上就是把数据从mysql库里以逻辑的sql语句的形式直接输出或者生成备份的文件的过 ...

最新文章

  1. Linux中autoduck批量对接,科学网—用AutoDock进行分子对接教程——半柔性对接 - 杜文义的博文...
  2. 【NeurIPS2019】Yoshua Bengio报告:深度学习系统从1代到2代
  3. AntD Checkbox 的三种状态处理
  4. js 矩阵转置_js对象数组矩阵转置(行转列)的实践
  5. 代码: html 页面小效果 (集合,待补充)
  6. NFS服务器是什么?(Network File System 网络文件系统)(远程主机间 mount 挂载目录)(ubuntu:nfs-kernel-server)
  7. 用tftp 下载/更新ios和配置文件
  8. 终于来了!微软正式推出 VS Code 测试 API
  9. linux安装mysql后如何连接_Linux安装mysql后开启远程连接(记录相关命令)
  10. C++工作笔记-对友元函数的进一步理解
  11. sql求平均日活_日活、周活(周重活)、月活 统计
  12. Git HTTP方式克隆远程仓库到本地
  13. linux打印显示etc中的文件,Linux命令之文件内容查看(cat、tac、nl、more、less、head、tail)...
  14. zerotier使用教程_ZeroTier 初阶教程
  15. Word文档中去除EndNote格式
  16. 京东、搜狗“带狗”都好好的,为何司机对快狗打车不满意?
  17. Android TextView 上下滑动 左右滑动设置
  18. php7的新特性有哪些,php7新特性有哪些?
  19. Win10,详细永久关闭更新方法(附图文)
  20. 网页抓取实例之wildberries电商平台数据抓取

热门文章

  1. Windows Server 2016之RDS配置证书
  2. 解决App启动时白屏的问题
  3. saltstack的状态文件
  4. ECShop 前台用户中心调整左侧栏目及中心部分呈现页面
  5. LoadRunner中进程运行和线程运行区别
  6. 对测试人员或开发人员来说相互沟通有多重要?
  7. SBO中的manager用户已锁定
  8. 小程序 node.js mysql_基于Node.js+MySQL开发的开源微信小程序B2C商城(页面高仿网易严选)...
  9. HTTP与HTTPS区别(详细)
  10. “玩转课堂”基本构想