数据量大,列比较多,请问数据库表该如何设计?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据量大,列比较多,请问数据库表该如何设计?相关的知识,希望对你有一定的参考价值。

一个时间点会产生1000多个数据,本想将每个数据作为一列,列数太多。如果每个数据一行,一年下来记录数将达几千万。不知我的数据库该如何设计?

基本的建立主键,索引什么的,我就不说了,

表设计可以采取拆分表的方式

    纵向拆分表:根据字段拆分为多个表,每个表都有关联字段,可以将他们关联起来

    (例如:订单表,几个根据字段拆分的表中都有1个订单号字段)

    横向拆分表:不知道你具体什么数据,假定其中有时间字段,根据时间来拆分

    (例如:1年有12个月,1个月的数据放入一个表中)

追问

多谢指点,我现在列是这样的,一个时间列,后面每列代表一个“高度数据”,如:“时间”、“高度1”、“高度2”、...、“高度n",n>1000,我是不是把高度列拆到多张表中啊?每张表大概多少列合适?

追答

这个看你具体想根据我说的是想保留全部字段,按时间拆分,还是要按字段拆分了;如果你想按高度拆分的话,这个要看你自己的具体数据量,是否要经常做插入更新操作等来看的(或者说哪些字段会有更新操作),没有说固定的说,我一张表就要多少列的,,,

参考技术A 尽量以数据的关系去拆分表,如果是不再有用的数据,可以搬到历史表 参考技术B 需找相关数据,拆分相关关联表 使一个表变成几个关联表,这样就减压了 参考技术C 主键使用UUID就好了

使用vba调用sql速度快吗?数据量大,直接把数据写在shtr里面调用速度好慢,请问有没有啥办法

使用vba调用sql速度快吗?数据量大,直接把数据写在shtr里面调用速度好慢,请问有没有什么办法在调用能快速调用数据库里面的数据到vba里面来进行处理?

VBE 工具 引用,选中 Microsoft ActiveX Data Object 2.8 Library
我不清楚是不是UFDATA_013_2008表的VENDOR列的数据,如果不是,你自己改一下SQL语句吧,sql = "select VENDOR from UFDATA_013_2008"

Sub SQL数据导入()

Dim cn As New ADODB.Connection
Dim rs As ADODB.Recordset
Dim str As String
Dim sql As String
Dim i As Integer

str = "Provider=SQLOLEDB;Data Source=SQLSERVER服务器名或IP;DATABASE=数据库;UID=用户名;PWD=密码"
cn.Open str
Set rs = New ADODB.Recordset
sql = "select VENDOR from UFDATA_013_2008"
rs.Open sql, cn, adOpenStatic, adLockOptimistic

If Not rs.EOF Then
For i = 1 To rs.RecordCount
Sheet2.Cells(i, 1).Value = rs.Fields(0).Value
Next i
rs.MoveNext
End If
rs.Close
cn.Close
End Sub
参考技术A 把文件及具体要求发给我 要写代码最低10元追问

这是VBA瓶颈的事!不是钱的事!

追答

哈哈,这方面我经验也不足。大数据量的,要试了以后才知道。
我只知道用字典比数组快10多倍。这个我试过。

参考技术B 肯定可以呀。

以上是关于数据量大,列比较多,请问数据库表该如何设计?的主要内容,如果未能解决你的问题,请参考以下文章

sqlserver字段如何自动更新

Qt如何实现这种效果,展示多组多列的数据,某些列可放按钮接收事件

使用vba调用sql速度快吗?数据量大,直接把数据写在shtr里面调用速度好慢,请问有没有啥办法

关于element中el-select数据量大时如何进行分页

量大,sqlite数据库写入数据慢,有啥办法吗

如何设计java程序能提高大数据量的计算速度?