我有一个 LINQ 语句,它使用自定义函数在压缩字符串中查找某些匹配的数据。
只有一场比赛,如果我做了一个 FOR 循环,我会在找到数据后添加一个“中断”。但是,使用 LINQ 似乎会遍历所有记录以查找是否需要匹配(从 SQL/子集的角度来看这是有道理的)但是我想知道是否有办法使 LINQ 语句在完成时中断WHERE 子句,以便它在找到单个匹配项后不必继续搜索匹配记录。
我可以重新编写所有内容以使用 FOR 循环,但我想知道是否有一种方法可以限制 LINQ 语句在条件匹配的情况下在 X 次迭代后停止搜索。
代码如下
IEnumerable<MarketDataType> queryMarkets =
from m in Mdata
where !String.IsNullOrEmpty(m)
let field = m.Split('~')
where (MatchMarket(field[5], BaseDate.AddMilliseconds(DaylightSavings + Convert.ToDouble(field[4])), field[1], racecourse, racedatetime, marketType))
select new MarketDataType()
{
marketId = Convert.ToInt32(field[0]),
marketName = field[1].Replace(ColonCode, ":"),
marketType = field[2],
marketStatus = field[3],
eventDate = BaseDate.AddMilliseconds(DaylightSavings + Convert.ToDouble(field[4])),
menuPath = field[5].Replace(ColonCode, ":"),
eventHeirachy = field[6],
betDelay = Convert.ToInt32(field[7]),
exchangeId = Convert.ToInt32(field[8]),
countryCode = field[9], …Run Code Online (Sandbox Code Playgroud) 我有一个使用Visual Studio 2010,CSharp,.NET 4.0编写的小型Windows应用程序,它使用HTTP请求,ping和DNS查找对远程页面进行一些扫描.
然后,它显示按列排序的表格(顶部标签)中的扫描结果.
这很简单,但我想添加一个"设置"面板或菜单选项,以便用户可以添加某些配置选项,如-Timeout duration(HTTP调用)-Proxy details(port和IP)-Useragent -Email登录详细信息,port ,电子邮件帐户类型IMAP/POP3,密码等 - 其他
因此,我想在应用程序中添加一个"根深蒂固"的小数据库,并作为.EXE的一部分.
我习惯于编写客户端/服务器应用程序,其中数据库位于远程服务器上,而应用程序位于其他位置,并使用ADO连接字符串连接到此远程SQL Server,然后我使用管理工作室查看数据.
我不知道从这个类型的小数据库开始到应用程序的哪个方面.我是否使用SQlLite或SQL CE或其他类型的MS SQL DB.
我是否必须在应用程序内部编写代码以"创建数据库,表格并填充它们",然后将数据退出(如果存在)以向用户显示以便他们可以编辑详细信息.
数据库是否与.EXE分开或者它是.EXE的一部分,当我向人们提供它时,理想情况下我希望它是.EXE的所有部分.
我相信在网上有很棒的教程我正在浏览,但我想听听其他人的想法,以及最佳方法.
如果您有任何链接,指南或教程的任何链接都会很棒.
提前致谢.
我试图通过向慢查询日志中出现的查询添加索引来提高锤击wordpress DB的性能.
在MS SQL中,您可以使用查询提示强制查询使用索引,但如果正确覆盖列,则通常很容易获得查询以使用索引.
我有这个查询出现在慢查询日志中很多
SELECT SQL_CALC_FOUND_ROWS wp_posts.ID
FROM wp_posts
WHERE 1=1
AND wp_posts.post_type = 'post'
AND (wp_posts.post_status = 'publish')
ORDER BY wp_posts.post_date DESC
LIMIT 18310, 5;
Run Code Online (Sandbox Code Playgroud)
我在on wp_posts上创建了一个覆盖唯一索引post_date, post_status, post_type and post_id并重新启动MySQL但是当我运行解释时使用的索引是
status_password_id
Run Code Online (Sandbox Code Playgroud)
并且在可能的键中我的新索引甚至没有出现,尽管它是覆盖索引,例如我得到的
type_status_date,status_password_id
Run Code Online (Sandbox Code Playgroud)
因此,如果MySQL有一个"优化器",那么使用的索引或可能的选择都不会考虑我的post_date作为第一列的索引.我本来以为一个查询基本上是做一个TOP并按日期排序
ORDER BY wp_posts.post_date DESC LIMIT 18310, 5;
Run Code Online (Sandbox Code Playgroud)
是否希望使用按日期排序的索引来获取速度,尤其是具有满足查询所需的所有其他字段的索引?
MySQL是否有查询提示强制索引用于速度/性能测试,或者我还需要做些什么来查看为什么忽略这个索引.
如果Navicat有一个像MS SQL这样的可视化查询执行计划,我会很喜欢它,但似乎EXPLAIN是它提供的最好的.
任何有关如何强制使用索引或解决为什么被忽略的提示的人都会非常有帮助!
谢谢