小编PLa*_*ane的帖子

数据库设计:很多行与很多表?

我正在为一个系统做这个数据库设计的东西,我需要将一些可变长度数组存储到mysql数据库中.

阵列的长度(最多)为数百(如果不是数千).

将定期创建新阵列,可能每天数十个.

  1. 我应该将这些数组存储在一个很快会变得巨大的表中
  2. 为每个数组创建一个新表,很快就有一个庞大的数字或表?
  3. 别的什么?(就像数组值的格式化文本列一样)

澄清,1.粗略表示

CREATE TABLE array (id INT, valuetype VARCHAR(64), ...)
CREATE TABLE arr_values (id INT, val DOUBLE, FK array_id)
Run Code Online (Sandbox Code Playgroud)

和2.

CREATE TABLE array (id INT, valuetype VARCHAR(64),...)
CREATE TABLE arr_values (id int, val DOUBLE, FK array_id) -- template table
CREATE TABLE arr1_values LIKE arr_values ...
Run Code Online (Sandbox Code Playgroud)

arr_values将用作通过连接到完整数组来查询的数组.关于为什么某些方法比其他方法更好的任何想法?

mysql sql database-design

8
推荐指数
2
解决办法
2162
查看次数

调度算法

我有一个调度问题,其中新的作业(按顺序连接执行的任务集)每隔几秒左右到达.
每项工作都需要以已知的时间间隔分配一些资源.
例如:
Job j1是一组任务,我们{r1, r2, r3} 在已知的调度模式上保留资源:

r1:[t0 .. t1=t0+td1], 
r2:[t2=t1+td2+i2 .. t3=t2+td3]
Run Code Online (Sandbox Code Playgroud)
  • t0是执行的开始时间
  • td1是r1的资源分配长度
  • t1是r1资源分配的结束时间
  • i1是r1,r2之间等待的perioid的长度,依此类推.

安排例子
在该示例中,正在j1执行开始之后立即调度新作业j2.j2的最早开始时间是t1.一份工作可能需要几分钟的执行时间,其中大部分都是等待.

我有一个调度程序查看当前的预订表,并决定哪个是具有固定分配时间和等待期的新作业的最早可能的起始时刻,并相应地进行预订.

(但实际上,等待期并不需要固定 - 但在一定百分比(可能是5%)内并且可能有资源使用的替代方案,例如,如果资源r3.1被预订,那么3.2可能是用来实现同样的目的.)

但是,如果需要调度程序(是的,已建议)能够在新作业到达时动态调整所有计划分配,以通过利用等待时间的事实最大化完成的总工作量(在一天内)不需要完全给定和并行执行与一些resrouce重复(3.1/3.2)的可能性,然后我会看一个完全不同的调度方案(比我目前的尽快开始即时方法).

  1. 那你会调用什么调度方案呢?
  2. 关于解决(新)问题的任何建议?

algorithm scheduling

5
推荐指数
1
解决办法
1203
查看次数

标签 统计

algorithm ×1

database-design ×1

mysql ×1

scheduling ×1

sql ×1