C# .NET扩展项目
在这两者之间建立一个更大的数据库,在速度方面有什么更好?他们不必与外键对应方交谈,因为从表中发送电子邮件并删除条目会发生循环,因此没有视图。我不知道是让外键每次读取,但只存储一小部分数据,还是再次存储数据而不读取其他表C# .NET扩展项目,c#,.net,asp.net-mvc,C#,.net,Asp.net Mvc,在这两者之间建立一个更大的数据库,在速度方面有什么更好?他们不必与外键对应方交谈,因为从表中发送电子邮件并删除条目会发生循环,因此没有视图。我不知道是让外键每次读取,但只存储一小部分数据,还是再次存储数据而不读取其他表 namespace Linkofy.Models { public class AutoSending { public int ID { get; set; } [Display(Name = "Receipiant Name")] public st
namespace Linkofy.Models
{
public class AutoSending
{
public int ID { get; set; }
[Display(Name = "Receipiant Name")]
public string receiptName { get; set; }
[Display(Name = "Receipiant Emial")]
public string receiptMail { get; set; }
[Display(Name = "Sender Name")]
public string senderName { get; set; }
[Display(Name = "Email Address")]
public string emailAddress { get; set; }
[Display(Name = "Password")]
public string password { get; set; }
[Display(Name = "Send subject")]
public string subject { get; set; }
[Display(Name = "Send body")]
public string Body { get; set; }
[Required(ErrorMessage = "Send Time")]
public DateTime sendDate { get; set; }
public int autoListID { get; set; }
public int? UserTableID { get; set; }
public virtual UserTable UserTable { get; set; }
}
}
namespace Linkofy.Models
{
public class autoList
{
public int ID { get; set; }
public int? OutreachNamesID { get; set; }
public virtual OutreachNames OutreachNames { get; set; }
public int EmailAccountID { get; set; }
public virtual EmailAccount EmailAccounts { get; set; }
public int TemplateID { get; set; }
public virtual Template Templates { get; set; }
[Required(ErrorMessage = "Emails Sent")]
public int sent { get; set; }
[Required(ErrorMessage = "Total to Send")]
public int total { get; set; }
[Required(ErrorMessage = "Start Date")]
public int startDate { get; set; }
[Required(ErrorMessage = "End Date")]
public DateTime endDate { get; set; }
public int? UserTableID { get; set; }
public virtual UserTable UserTable { get; set; }
}
}
如果我理解你的意思: 再次存储数据,而不让它读取其他表 是的,将所有数据存储在一个表中总是更快。您应该尝试确定的速度要快多少。现代关系数据库的速度非常快。在发送电子邮件的情况下,我怀疑数据库会成为您的瓶颈
总的来说,这听起来像是你陷入了过早优化的陷阱,在不知道你担心的代码实际上有一个值得修复的性能问题的情况下修复了一个假定的性能问题。啊,非常感谢:是的,我只是不想在以后重新构建它,因为这样做是最好的现在问吧!你将如何进行这样的测试?这取决于很多事情。如果你真的发送了大量数千封或更多的邮件,如果这不是某个内部企业系统,你可能应该看看我个人喜欢的批量邮件服务。不过,一般来说,您需要一种发送大量测试电子邮件的方法,以便对API计时。我几乎可以保证这将是瓶颈。许多批量服务也有办法管理您的邮件通讯簿,它们甚至可以管理和跟踪诸如取消订阅请求之类的事情。Azure要求您使用第三方邮件服务。他们倾向于推荐SendGrid,但我们发现mailgun更便宜,我更喜欢他们的API。啊,我明白了!我用这个代码通过gmail发送出去,因为我主要使用的smtp是gmail,这个代码能处理吗?但我很想整合更多,比如阅读邮件等。你不能使用任何来自Azure的SMTP服务,System.Net.mail就是这么做的。自从Azure在过去被垃圾邮件发送者严重滥用以来,微软封锁了所有正常的邮件端口。您必须选择具有基于API的邮件解决方案的服务提供商。此外,如果你试图通过gmail发送大量邮件,谷歌会很快限制你或完全关闭你。