0

Я использую EF6 для создания и заполнения таблицы ее основным ключом как ServerTime (DateTime).Создать PARTITION на MySql Таблица, созданная с помощью кода Первая реализация на EF6

Таблица очень велика и позволяет ускорить время доступа, а также воспользоваться тем, что мой стол разбит на более мелкие файлы разделов, а не один массивный .ibd-файл, когда я выполняю внешний запрос, например:

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' 

Я бы хотел, чтобы таблица была автоматически разделена на servertime во время создания кода First.

Я уже знаю сырой синтаксис MySql для разбиения таблицы по диапазону.

Мое настоящее решение состоит в том, чтобы создать и заполнить базу данных с помощью кода EF6, а затем вручную выполнить разбиение на разделы с помощью необработанного запроса MySQL. Другое решение - использовать простой старый ADO.NET непосредственно после создания кода First, но я бы предпочел бы, чтобы все было упорядочено внутри кода EF6.

Что мне нужно знать, как я могу сделать то же самое через код первой реализации (при условии, что это даже возможно)

Большое спасибо.

ответ

1

Это только ускорение? Где вам нужно заполнить эти данные? Предполагая, что у вас есть уровень обслуживания или менеджер для использования этого объекта. Вы всегда можете использовать использование своего репозитория для выполнения над вашим объектом с использованием выражения lembda.

пример

using (var dataBaseContext= new your_DbContext()) 
{ 
    var repoServer = new Repository<gbpusd>(dataBaseContext); 
    var searchedGbpusd =repoServer.SearchFor(i=> i.servertime <= date && i.servertime >= date).select; 
///you can specify date what ever you like 
///use this searched Data where ever you want to use. 
} 

Надеется, что это поможет. Thanks Fahad

+0

База данных составляет несколько гигабайт, охватывая несколько месяцев. В моем первом тесте, сравнивающем секционированную с несегментированной таблицей с необработанными запросами, я обнаружил, что производительность была значительно улучшена с помощью раздела. Кроме того, он позволяет мне архивировать старые разделы как небольшие отдельные файлы на других дисках, стихи с огромной гигабайтной таблицей, которая должна оставаться на активном жестком диске. Я планирую использовать шаблон репозитория, но мне все равно хотелось бы, чтобы мой стол тоже разбился на разделы. Существует удобство разделения моих данных между файлами меньших разделов, а также скоростью. – guerillacodester

+0

Привет, Вы можете просто создать свою сущность, используя первую практику EF6. Используя поиск через репозиторий, выполните поиск данных и заполните эту таблицу. Как я и предложил, используйте искомые данные, а затем заполняйте данные и выполняйте эту деятельность так часто, как вам нужно. Подобно тому, как пользователи не на пике. –

+0

Нет. Это не отвечает на исходный вопрос. В настоящее время мой файл базы данных .idb имеет размер более 100 гигабайт. Все записи помещаются в один файл на моем активном жестком диске. Некоторые записи хранятся более года назад, и к ним часто не обращаются, поэтому их можно отделить и переместить на второй диск. Разбирая мою таблицу по диапазону, я могу разбить этот массивный .idb-файл на более мелкие, каждый из которых содержит записи для определенного диапазона datetime. Таким образом, я мог бы перемещать наименее доступные записи на вспомогательный диск, освобождая необходимое пространство на жестком диске. Мне нужно разбиение на разделы, чтобы сделать это. – guerillacodester

0

Вы можете просто создать свою сущность, используя первую практику EF6. Используя поиск через репозиторий, выполните поиск данных и заполните эту таблицу. Как я и предложил, используйте искомые данные, а затем заполняйте данные и выполняйте эту деятельность так часто, как вам нужно. Подобно тому, как пользователи не на пике. - Shaikh Muhammad Fahad 1

+0

Нет. Это не отвечает на исходный вопрос. В настоящее время мой файл базы данных .idb имеет размер более 100 гигабайт. Все записи помещаются в один файл на моем активном жестком диске.Некоторые записи хранятся более года назад, и к ним часто не обращаются, поэтому их можно отделить и переместить на второй диск. Разбирая мою таблицу по диапазону, я могу разбить этот массивный .idb-файл на более мелкие, каждый из которых содержит записи для определенного диапазона datetime. Таким образом, я мог бы перемещать наименее доступные записи на вспомогательный диск, освобождая необходимое пространство на жестком диске. Мне нужно разбиение на разделы, чтобы сделать это. – guerillacodester