草庐IT

partitioning

全部标签

Mysql:没有主键的分区

我有下表,其中包含大量数据,这就是我要拆分或分区它的原因。问题是我想按不是主键的列进行分区:project_id。在我的例子中,最多会有2或3个不同的项目ID...-id(PRIMARYKEY,AUTOINCREMENT)-project_id(INT)-username(UNIQUE)-username_md5(UNIQUE)(-...morebutirrelevantcolumns)如您所见,我需要保证3列是唯一的(id、用户名、username_md5)。现在,我想对project_id列进行RANGE分区。我想出的唯一解决方案是为所有这些列制作一个丑陋的4列主键(分区要求分区表

mysql - 搜索连续范围的数字,同时忽略 <= 5 的间隙

我正在尝试从MySQL的数据集中查找连续范围的数值。但是,应忽略小于5的范围内的“间隙”。下面是我当前的代码(在某种程度上可以正常工作),为了方便起见,分割成较小的部分。dataset包含“时间”和“数字”列(均为数字)。最终目标是获取与number>200关联的所有“thetime”范围。(1)首先,我通过选择编号droptemporarytableifexiststmp_gaps;createtemporarytabletmp_gapsas(selectthetimefrom`dataset`wherenumber(2)根据here解释的方法,我将这些发现的差距划分为范围。drop

mysql - 对表进行分区时出现错误 - 'Inconsistency in usage of column'

我有一个表ee_company_product_listings_par,它有很多列,包括cplc_id和marketplaceID。这是表的DDL:-ee_company_product_listings_par|CREATETABLE`ee_company_product_listings_par`(`id`int(11)NOTNULLAUTO_INCREMENT,`company_product_id`int(11)DEFAULTNULL,`feed_dump_id`int(11)DEFAULTNULL,`listing_status_id`int(11)DEFAULTNULL,

MySQL:将大表拆分为分区或单独的表?

我有一个包含20多个表的MySQL数据库,但其中一个表非常大,因为它从不同的传感器收集测量数据。它的磁盘大小约为145GB,包含超过10亿条记录。所有这些数据也被复制到另一个MySQL服务器。我想将数据分成更小的“碎片”,所以我的问题是以下哪种解决方案更好。我会使用记录的“时间戳”来按年划分数据。几乎所有在此表上执行的SELECT查询都在查询的“where”部分包含“timestamp”字段。所以以下是我无法决定的解决方案:使用MySQL分区并按年份划分数据(例如分区1-2010,分区2-2011等)创建单独的表格并按年份划分数据(例如measuring_2010、measuring_

mysql - 使用 LIKE 进行搜索的大型 MySQL 表的分区

我有一个包含8000万条记录的表。表的结构:id-自动递增,代码-5到100个字符的字母数字代码,其他领域。最常用的查询是SELECT*FROMtableWHEREcodeLIKE'%{user-defined-value}%'查询的数量和记录数都在增长。很快我就会遇到性能问题。有什么办法可以把表格分成几部分?或者也许还有其他一些优化表格的方法? 最佳答案 搜索中领先的%是这里的killer。它否定了任何索引的使用。我唯一能想到的就是根据代码长度对表进行分区。例如,如果输入的代码是10个字符长,则先搜索10个字符代码的表,不带前导百

Mysql 5.5 自动创建每月分区

我有一个数据库表,每天插入大约10k行。数据库中已经有超过1000万条记录。我想知道如何每月在此表上自动创建分区,以便我可以更快地获取数据。对于在表上创建的分区数量也有任何限制。例如。2000年12个分区2001年的12个分区等等...分区应该在每个月初自动创建。我的方案中有日期列。 最佳答案 不,您必须自己定期运行ALTERTABLE来添加分区。MySQL没有自动添加分区以响应数据增长的功能。但是您当然可以创建一个cron作业来完成它。或者您可以使用MySQLEVENT.MySQL5.5允许每个表最多1024个分区,MySQL5.

Mysql partition by key 只显示1个分区

我有一个场景,比如我有一个包含不同类别的产品表。所以查询将特定于类别。所以我想,如果我可以将每个类别分开作为每个分区,它将提高性能。DROPTABLEIFEXISTSproducts;CREATETABLEproducts(idint(11)AUTO_INCREMENT,pnamevarchar(11)default'',categorychar(10)default'general',PRIMARYKEYthisKey(id,category))PARTITIONBYKEY(category);我加载了两个类别的数据。但它只显示一个分区:mysql>EXPLAINPARTITIONS

mysql - 高效的 MySQL 模式,对巨大的数据集进行分区(7.300.000.000 行和大约 80 GB 的数据)

这是对我的问题“高效存储7.300.000.000行”(Efficientlystoring7.300.000.000rows)的跟进。我决定使用MySQL进行分区,初步架构如下所示:CREATETABLEentity_values(entity_idMEDIUMINTUNSIGNEDDEFAULT0NOTNULL,#3bytes=[0..16.777.215]date_idSMALLINTUNSIGNEDDEFAULT0NOTNULL,#2bytes=[0..65.535]value_1MEDIUMINTUNSIGNEDDEFAULT0NOTNULL,#3bytes=[0..16.7

Mysql 'Partitioning' vs 拆分数据到不同的表

我们有一个名为posts_content的mysql表。结构如下:CREATETABLEIFNOTEXISTS`posts_content`(`id`int(11)NOTNULLAUTO_INCREMENT,`post_id`int(11)NOTNULL,`forum_id`int(11)NOTNULL,`content`longtextCHARACTERSETutf8COLLATEutf8_unicode_ciNOTNULL,PRIMARYKEY(`id`))ENGINE=MyISAMDEFAULTCHARSET=latin1AUTO_INCREMENT=79850;问题是表格越来越

mysql - 多表还是使用分区?

我看到这个问题几乎在许多线程上得到了回答,但没有考虑对这个特定领域的影响:我希望在MySQL中存储大量仪表(500个并且还在增加)的时间序列数据,每个仪表以5分钟的间隔提供一个浮点值。最简单的结构是:-gauge_id-时间戳-值(value)(其中gauge_id和timestamp组合为主键)这意味着每年每个仪表大约有105120行-所有这些都需要存储10年或20年。对于1000个仪表,我们每年将查看1亿条记录。数据是分批写入的,通常每个channel的值都会从远程源聚合到一个XML文件中,然后每小时或每天读入数据库。所以最多,每小时插入的数量与我们的量规一样多。数据的读取操作将基