如何优化mysql下一个免费“槽”的研究?
我有个问题,找不到简单的解决办法。 我用这种方法制作了自膨胀结构 数据库1 |表1 |表2 .... |表n 。 . 数据库|表1 表2 表n 每个表都有如下结构: id |值如何优化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
每次生成一个数字时,都会将其放入正确的数据库/表/结构中,并以这种方式进行划分,以实现可伸缩性。。。以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]