讨论下blog数据表分表的方法

问题描述

有一张blog数据表,数据很多的话需要分表。blog表的字段:blog_id, user_id, content, created_at如果按照blog_id来分表,访问某一个用户的所有blog,就要在N张blog表里查询。如果按照user_id来分表,访问某一篇blog要查询N张blog表。是否有更好的分表方法,能解决上面的问题呢? 问题补充:<div class="quote_title">albb0608 写道</div><div class="quote_div">可以不分表,建立分区表</div><br />分区不就是分库吗?

解决方案

2个表1)blog_id, content,created_at2)user_id,blog_id
解决方案二:
可以,因为2个表就必须用数据连接,数据表连接最后会被优化,不能参与连接的记录将不会进入计算范围,你应尽量让尽可能少的记录参与最后的连接运算,这样速度会更快,让数据冗余就是一种加快数据访问速度的方法
解决方案三:
可以不分表,建立分区表

时间: 2024-10-31 13:48:18

讨论下blog数据表分表的方法的相关文章

1亿条数据如何分表100张到Mysql数据库中(PHP)_php技巧

下面通过创建100张表来演示下1亿条数据的分表过程,具体请看下文代码. 当数据量猛增的时候,大家都会选择库表散列等等方式去优化数据读写速度.笔者做了一个简单的尝试,1亿条数据,分100张表.具体实现过程如下: 首先创建100张表: $i=0; while($i<=99){ echo "$newNumber \r\n"; $sql="CREATE TABLE `code_".$i."` ( `full_code` char(10) NOT NULL,

解决低分辨率下无法开启win8分屏的方法

  Win8.1系统分屏是windows系统下的一大功能特色,让我们将系统分为多等分,可在不同的分屏下运行不同的任务桌面,通常情况下只要我们的系统分辨率足够,就能够正常使用该功能,不过有部分用户反映,由于自己的分辨率太低,出现系统无法分屏的问题,对于该类问题河东软件园为大家带来了一种解决方法,系统对大家有所帮助! 解决低分辨率下无法开启win8分屏的方法 第一步:我们需要调出运行框,具体方法为:按WIN+R组合键调出运行窗口,然后输入 regedit 并回车; 第二步:在弹出的注册表编辑器中,我

秋色园QBlog技术原理解析:性能优化篇:数据库文章表分表及分库减压方案(十五)

文章回顾: 1: 秋色园QBlog技术原理解析:开篇:整体认识(一) --介绍整体文件夹和文件的作用 2: 秋色园QBlog技术原理解析:认识整站处理流程(二) --介绍秋色园业务处理流程 3: 秋色园QBlog技术原理解析:UrlRewrite之无后缀URL原理(三) --介绍如何实现无后缀URL 4: 秋色园QBlog技术原理解析:UrlRewrite之URL重定向体系(四) --介绍URL如何定位到处理程序 5: 秋色园QBlog技术原理解析:Module之页面基类设计(五) --介绍创建

在mount状态下恢复数据文件system表空间

数据字典(包含数据库本身以及存储的所有对象的基本信息)存放在SYSTEM表空间中.当数据库处于open状态时,如果system表空间所对应的数据文件出现介质失败,当在其数据文件上进行IO时操作时,数据库会自己关闭:当数据库处于关闭状态时,如果system表空间所对应的数据文件出现介质失败,数据库将不能打开.打开时会出现如下错误: ORA-01157: 无法标识/锁定数据文件 1 - 请参阅 DBWR 跟踪文件ORA-01110: 数据文件 1: 'F:\APP\YANG\ORADATA\ORAC

mysql大数据分库和分表 php解决方案

1,主从复制,读写分离 对主库修改数据,查询使用从库.一主多从,来降低数据库读取压力. 2,分库分表 根据实体业务来分库,分表.如,根据数据的活跃性,根据用户uid等. 3,mysql 不同存储引擎区别 InnoDB 用于数据完整性/写性能要求比较高的应用. MyISAM 适合查询应用.  分表是分散数据库压力的好方法. 分表,最直白的意思,就是将一个表结构分为多个表,然后,可以再同一个库里,也可以放到不同的库. 当然,首先要知道什么情况下,才需要分表.个人觉得单表记录条数达到百万到千万级别时就

MySQL分库分表的实现过程详解介绍

MySQL分库分表基础表介绍 表基本模型结构 这里我们模拟一个商城的基本的表结.此结构由(用户.门店.导购.门店商品.订单.订单对应的商品).其中,导购也是一个用户,门店是只属于一个店主的,同时店主本身也是一个导购也是一个普通用户. 结构图:   构造数据脚本 MySQL分库分表(1)-脚本 对业务场景进行模拟 场景1:购买者下订单. 1.从session中获得客户ID. 2.可以通过时间戳等拼凑一个订单ID(在创建表的时候为了方便我用自增的,在以下我们一直就吧订单ID看成不是自增的,是用程序生

Mysql第八天 分区与分表

分区表 主要提供如下的特性,或者适合如此场景: 数据量非常大, 或者只有表中最后的部分有热点数据,其他均为历史数据 分区表数据更容易维护,可以对独立的分区删除等操作 分区表的数据可以分布在不同的物理设备上,从而高效地利用多个硬件设备. 可以避免一些特殊瓶颈,比如InnoDB的单个索引的互斥访问 可以备份和恢复独立的分区 创建分区表 通常有这么几种分法,因为主键或者是唯一约束键必须有一部分包含在分区键中,所以一般要不无主键,要不就按照自增主键的id进行范围分区,要不就把分区字段和主键一起作为联合主

阿里云 DRDS 分库分表二维查询解决方案(RANGE_HASH拆分函数)

现有互联网业务模式下,数据库分库分表已经成为解决数据库瓶颈的一个普遍的解决方案.分库分表有多种好处,比如高容量.大并发等,但是在拆分过程中也引入了一些使用限制,比如多维查询,非拆分键的查询请求会分发到底层所有实例进行查询,性能会大打折扣. 我们来举个例子,最常见的订单表,常用的拆分方法是按照用户 ID 作为拆分键.如果仅使用订单号作为条件来查询则会出现上述性能问题,而仅通过订单号的查询请求恰恰占有不小的比例. 在阿里云提供的新版 DRDS(5.1.28-1320920 及其以上的版本)已经实现二

VBS实现工作表按指定表头自动分表_vbs

在我们实际工作中经常遇到将工作表按某一表头字段分开的情况,我们一般的做法是先按指定表头排序然后分段复制粘贴出去,不但麻烦还很容易搞错. 下面的VBS脚本就是实现的工作表按指定表头(由用户选择)自动分表功能.需要的朋友只要将要操作的工作表拖放到脚本文件上即可轻松实现工作表分表(暂时只适用于xp系统): 复制代码 代码如下: '拖动工作表至VBS脚本实现按指定表头自动分表 On Error Resume Next If WScript.Arguments(0) = "" Then WScr