Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何优化mysql下一个免费“槽”的研究?_Mysql_Algorithm_Search_Subquery - Fatal编程技术网

如何优化mysql下一个免费“槽”的研究?

如何优化mysql下一个免费“槽”的研究?,mysql,algorithm,search,subquery,Mysql,Algorithm,Search,Subquery,我有个问题,找不到简单的解决办法。 我用这种方法制作了自膨胀结构 数据库1 |表1 |表2 .... |表n 。 . 数据库|表1 表2 表n 每个表都有如下结构: id |值 每次生成一个数字时,都会将其放入正确的数据库/表/结构中,并以这种方式进行划分,以实现可伸缩性。。。以fas方式管理数十亿条记录的表格是不可能的 N不固定的问题。。。。但它就像一个计算精确数字的基础,N是已知的……62但我只能使用时间上可能不同的数字子集 例如,我只能使用0 1和2,当我完成了所有可能的操作后,我想将4

我有个问题,找不到简单的解决办法。 我用这种方法制作了自膨胀结构

数据库1 |表1 |表2 .... |表n

。 .

数据库|表1 表2 表n

每个表都有如下结构:

id |值


每次生成一个数字时,都会将其放入正确的数据库/表/结构中,并以这种方式进行划分,以实现可伸缩性。。。以fas方式管理数十亿条记录的表格是不可能的

N不固定的问题。。。。但它就像一个计算精确数字的基础,N是已知的……62但我只能使用时间上可能不同的数字子集

例如,我只能使用0 1和2,当我完成了所有可能的操作后,我想将4等等添加到基数62

我想找到一个简单的方法来找到第一个空闲插槽,以放置下一个随机生成的id,但这可以恢复

例如:

我有0 1 2 3作为我要使用的数字

元素2313放在dabase 2表3中,表中有13 |值

元素1301放在dabase 1表3中,表中有01 |值

我想根据下一个空闲插槽生成另一个号码。 我可以测试从0到最大数量的每个插槽,但是当每个数据库和表都有数以百万计的记录时,这是不可能的

第一个示例的下一个元素是2323,而不是2314,因为我只使用0 1 2 3位数字。 我希望mysql中的som类反转代码给我表3数据库2上的23个插槽,将其转换为数字。我可以随机生成一个数字,并试图找到最近的自由上下,但由于设置是可变的不是一个好的选择

我希望能清楚地告诉我任何建议-

使用

显示诸如“database%”之类的数据库,以及查找不存在的数据库的循环 显示“table%”之类的表和表的循环 从tableN中选择count*以查看表是否已满。 要找到一个空闲插槽,请使用count in chunks遍历数据库。 这个未经测试的PHP/MySQL实现将首先填充所有现有的数据库和表,以N+1为基数,然后再创建新的表或数据库。 如果$如果需要其他行为,则应更改基础部件

findFreeChunk也可以通过迭代求解;但我把这一努力留给你

定义DB_前缀“数据库”; 定义TABLE_前缀“TABLE”; 定义ID_长度,2 函数findFreeChunk$base、$db、$table、$prefix= { $maxRecordCount=base**ID\u LENGTH-strlen$前缀;
对于$i=-1;++$iI还可以继续生成随机数,并测试插槽是否空闲……但如果结构已满,我可能需要数小时才能找到空闲插槽,这就是为什么我希望从空闲插槽开始生成数字,而不是从空闲插槽开始。使用索引,十亿个数据集效果很好。也许你不需要关系数据库数据库。不可能以fas方式管理包含数十亿条记录的表。此语句是错误的。包含数十亿行的表可以由MySQL使用分区和索引进行处理。嗯……我已经计算出每个表将包含14776335行……考虑到我已经完成的示例……我将……设置0 1 2 D=数据库T=表NN编号已使用插槽DTNN 0000*0001*0002*0010*0011 0012..:2222*如果我添加另一个数字3,结构将为:0000*0001*0002*0003 0010*0011 0012*0013..2222*:3333*依此类推…我希望在第一种情况0011和第二种情况0003中返回。我可以创建完整的数据结构,考虑如下表:在第一个示例中,将出现一个带有未定义插槽的数组,例如数据库0表0中的03,但未定义…[cont]