gpt4 book ai didi

.net - 从数据库中显示用户数量的最快方法?

转载 作者:行者123 更新时间:2023-11-30 23:35:18 25 4
gpt4 key购买 nike

我正在从我的用户表中执行 COUNT(userid) 并在网站上显示数字,但我想知道是否有任何其他更好的方法来获取、存储和显示此信息,而不是进行一次连接和 COUNT()每次访问者加载网页时从数据库中提取?

编辑:我刚刚在 MSDN 上找到了有关缓存的信息,这似乎是执行此操作的绝对最佳方法,感谢 TomTom!

ASP.NET Caching .NET 4.0

如果我想用我数据库中的 MembersCount 填充 cachedString,这是正确的方法吗?

    string cachedString;
cachedString = (string)Cache["CacheItem"];
if (cachedString == null)
{
MySqlConnection Connection = siteStuff.GetConnection();
MySqlCommand c = new MySqlCommand("SELECT COUNT(id) as TheCount FROM user", Connection);
Connection.Open();
MySqlDataReader reader = c.ExecuteReader();
reader.Read();
cachedString = reader["TheCount"].ToString();
Connection.Close();
Connection.Dispose();
Cache.Insert("CacheItem", cachedString);thanks TomTom!

编辑:我目前正在使用此代码:

    int cacheNumberUsers;
cacheNumberUsers = (int)Cache["MembersCount"];
if (cacheNumberUsers == null)
{
cacheNumberUsers = siteStuff.GetNumberUsers();
Cache.Insert("MembersCount", cacheNumberUsers);
}
nrRegMembers.Text = cacheNumberUsers.ToString();

但是我得到了错误:

System.NullReferenceException: Object reference not set to an instance of an object.

在线:

cacheNumberUsers = (int)Cache["MembersCount"];

编辑:我想我需要先将项目插入缓存吗?

Cache.Insert("MembersCount");

但是我把这段代码放在哪里有关系吗?换句话说,我是否应该将它放在 OnLoad 中以便它在每次页面请求时触发?还是我应该先检查它是否存在?

最佳答案

不要将非数据库问题变成数据库问题。

如:生成页面的缓存输出。使用.NET?使用输出缓存/部分输出缓存返回可能每分钟生成一次的旧 sql。

在忽略更高级别的情况下解决数据库上的性能问题并不明智 - 对于 .NET,所有 Web 前端技术中都有 wnoderfull 输出缓存机制。如果您愿意说出您使用的是哪一个...我可以帮助您提供链接。

关于.net - 从数据库中显示用户数量的最快方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7965312/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com