mysql单表数据量巨大时,查询性能会很差,经常遇到的是存储日志相关的数据会每天产生大量的数据。

这里提供单表拆分成多表存储的三个思路:

一,固定N张表,ID取模存储

预先创建好N张表,记录按ID取模存储到相应的表中。

优点:简单粗暴

缺点:

受ID模式,预先创建好表的数量,不易扩展和改动。

按ID查询方便,但按时间查询就比较麻烦。

数据量大时迁移会影响性能。

例如:表test 拆分到100张表中

INSERT INTO test{$i} SELECT * FROM test WHERE id%100={$i}

二,按日期分类

insert into test_YYYYMM (field1,field2....) SELECT field1,field2....FROM test WHERE filed3 >= "YYYYMMDD" and filed3 <= "YYYYMMDD+1";

优点:按时间好分类统计。

缺点:特定ID查询不方便,数据量大时迁移会影响性能。

三,rename 重命名方式

先复制test 表的结构创建一个临时表:
CREATE TABLE test_tmp LIKE test

RENAME TABLE test TO test_yyyyMM,test_tmp TO test;

在RENAME期间表是被锁死的,所以不用担心rename时数据丢失!

注意,按月份存储,则每月1号定时执行。

当然也可以变换拆分的方式,自由发挥了!

优点:快捷,无需数据导入导出。

mysql 分表策略的更多相关文章

  1. mysql数据表分表策略2(转)

    mysql分表方法: 方法一. 做数据库集群! 主从数据库 双向热备份(或一对多的数据库实时备份策略),这样可将数据库查询分摊到几个服务器去(可跟服务器负载均衡结合起来架构) 优点:扩展性好,没有多个 ...

  2. mysql数据表分表策略(转)

    mysql分表方法: 方法一. 做数据库集群! 主从数据库 双向热备份(或一对多的数据库实时备份策略),这样可将数据库查询分摊到几个服务器去(可跟服务器负载均衡结合起来架构) 优点:扩展性好,没有多个 ...

  3. 总结下Mysql分表分库的策略及应用

    上月前面试某公司,对于mysql分表的思路,当时简要的说了下hash算法分表,以及discuz分表的思路,但是对于新增数据自增id存放的设计思想回答的不是很好(笔试+面试整个过程算是OK过了,因与个人 ...

  4. MySQL分表(Partition)学习研究报告

    最近在开发一个新的项目,可能会产生大数据量,需要对部分表进行分表操作,故来研究学习MySQL的分表功能. 由于实验报告已经写成Exlce文件了,各位看过就直接下载吧:MySQL分表分析报告.xls 以 ...

  5. Mysql分表和分区的区别、分库分表介绍与区别

    分表和分区的区别: 一,什么是mysql分表,分区 什么是分表,从表面意思上看呢,就是把一张表分成N多个小表,具体请看:mysql分表的3种方法 什么是分区,分区呢就是把一张表的数据分成N多个区块,这 ...

  6. 浅谈MySQL分表

    关于分表:顾名思义就是一张数据量很大的表拆分成几个表分别进行存储. 我们先来大概了解以下一个数据库执行SQL的过程: 接收到SQL --> 放入SQL执行队列 --> 使用分析器分解SQL ...

  7. mysql 分表与分区

    一.操作环境 数据达到百w甚于更多的时候,我们的mysql查询将会变得比较慢, 如果再加上连表查询,程序可能会卡死.即使你设置了索引并在查询中使用到了索引,查询还是会慢.这时候你就要考虑怎么样来提高查 ...

  8. mysql分表,批量生成数据

    一.mysql的分表策略 根据经验,Mysql表数据一般达到百万级别,查询效率会很低,容易造成表锁,甚至堆积很多连接,直接挂掉: 1,水平分割: 水平(横向)拆分:将同一个表的数据进行分块保存到不同的 ...

  9. Mysql分表和分区的区别、分库分表介绍与区别(转)

    分表和分区的区别: 一,什么是mysql分表,分区 什么是分表,从表面意思上看呢,就是把一张表分成N多个小表,具体请看:mysql分表的3种方法 什么是分区,分区呢就是把一张表的数据分成N多个区块,这 ...

随机推荐

  1. PyPy 2.1 正式版发布

    PyPy 2.1 Beta1 才刚刚在2天前发布,今天 PyPy 宣布 2.1 正式版发布. 值得关注的改进内容有: JIT support for ARM, architecture version ...

  2. 用VS连接oracle数据库时ORA-12504错误

    在用VS2008连接oracle数据库时,可能会出现: ORA-12504: TNS: 监听程序在 CONNECT_DATA 中未获得 SERVICE_NAME 只需在web.config文件Data ...

  3. 聊聊JS与设计模式之(工厂Factory)篇------(麦当劳的故事)

    一,总体概要 1,笔者浅谈 说起设计模式其实并不是什么很新奇的概念,它也不是基于特定语言所形成的产物,它是基于软件设计原则以及相关的方法论和经过特定时期衍生出的若干解决方案.本文会以一个实例带入大家学 ...

  4. IIS问题解决:URL中制表符引起的Bad Request - Invalid URL

    昨天处理好了Google网站管理员中的500错误,今天处理了一些400处理,比如下面的以制表符(tab)结尾的URL: http://www.cnblogs.com/me-sa/archive/200 ...

  5. Vertica笔记

    1.Table不做存储,本质是一个视图,真正存储在 Projection 里.可以针对一个Table建多个Projection . 查看表和 Projection 的个数: select anchor ...

  6. 创建链接服务器(dblink)

    --创建链接服务器(dblink) exec sp_addlinkedserver 'srv_lnk','','SQLOLEDB','远程服务器名或ip地址' exec sp_addlinkedsrv ...

  7. windows server 2012 r2 iis8.5 部署asp.net mvc4/5程序小结

    windows server 2012 r2 iis8.5 部署asp.net mvc4/5程序小结 原文链接:http://www.xuanhun521.com/Blog/66d491f8-b479 ...

  8. 新手容易混乱的String+和StringBuffer,以及Java的方法参数传递方式。

    之前在交流群里和猿友们讨论string+和stringbuffer哪个速度快以及Java的方法参数传递的问题,引起了群里猿友的小讨论.最终LZ得出的结果是string+没有stringbuffer快, ...

  9. [Android] Android Sutdio on Surface Pro 3

    Install Android Studio http://www.android-studio.org/index.php/download/androidstudio-download-baidu ...

  10. atitit.编程语言 程序语言 的 工具性 和 材料性 双重性 and 语言无关性 本质

    atitit.编程语言 程序语言 的 工具性 和 材料性 双重性 and 语言无关性 本质 #---语言的 工具和材料双重性 有的人说语言是个工具,有的人说语言是个材料..实际上语言同时属于两个属性. ...