在通过EF6上的Code First实现创建的MySql表上创建PARTITION

时间:2015-07-27 20:27:53

标签: c# mysql entity-framework ef-code-first database-partitioning

我使用EF6创建并填充一个表,其主键为ServerTime(DateTime)。

该表非常大,为了加快访问速度,并且当我执行外部查询时,我可以享受将表分成较小的分区文件而不是一个大型.ibd文件的好处: / p>

SELECT
gbpusd.servertime,
gbpusd.orderbook
FROM
gbpusd
WHERE
gbpusd.servertime BETWEEN '2014-12-23 23:48:08.183000' AND '2015-03-23 23:48:08.183000'

我希望在Code First创建过程中通过servertime自动对表进行分区。

我已经知道用于按范围分区表的原始MySql语法。

我目前的解决方案是首先通过EF6 Code创建和填充数据库,然后通过原始MySQL查询手动执行分区。另一种解决方案是在Code First创建之后直接使用普通的旧ADO.NET,但我宁愿在EF6代码中简化所有内容。

我需要知道的是如何通过Code First实现完成同样的事情(假设它甚至可能)

非常感谢。

2 个答案:

答案 0 :(得分:1)

它只是加速吗?您需要填写此数据的位置?假设您有服务层或管理器来使用此实体。您始终可以使用您的存储库使用lembda表达式对您的实体执行操作。

例如

loadComplete: function () {
    var $this = $(this), p = $this.jqGrid("getGridParam"), i, count;

    if (firstLoad) {
        firstLoad = false;
        if (isColState && myColumnsState.cmOrder != null && myColumnsState.cmOrder.length > 0) {
            // We compares the values from myColumnsState.cmOrder array
            // with the current names of colModel and remove wrong names. It could be
            // required if the column model are changed and the values from the saved stated
            // not corresponds to the 
            var fixedOrder = $.map(myColumnsState.cmOrder, function (name) {
                    return p.iColByName[name] === undefined ? null : name;
                });
            $this.jqGrid("remapColumnsByName", fixedOrder, true);
        }
        if (typeof (this.ftoolbar) !== "boolean" || !this.ftoolbar) {
            // create toolbar if needed
            $this.jqGrid("filterToolbar",
                {stringResult: true, searchOnEnter: true, defaultSearch: myDefaultSearch});
        }
    }
    refreshSerchingToolbar($this, myDefaultSearch);
    for (i = 0, count = idsOfSelectedRows.length; i < count; i++) {
        $this.jqGrid("setSelection", idsOfSelectedRows[i], false);
    }
    saveColumnState.call($this, this.p.remapColumns);
},

希望它会有所帮助。 谢谢 法赫德

答案 1 :(得分:0)

您可以使用EF6代码首次练习创建实体。通过存储库实践搜索搜索数据并填写该表。像我建议的那样,使用搜索到的数据,然后填写数据并根据需要频繁运行此活动。就像用户没有达到峰值时一样。 - Shaikh Muhammad Fahad 1