小编Jam*_*son的帖子

低MySQL表缓存命中率

我一直在努力优化我的网站和数据库,我一直在使用mysqltuner.pl来帮助解决这个问题.我得到的一切都是正确的,除了表缓存命中率,无论我在my.cnf中提高它有多高,我仍然打0%(284开/ 79k开).

我的问题是我真的不明白究竟是什么影响了这个,所以我真的不知道在我的查询/数据库结构中要找什么来解决这个问题.

mysql sql caching

6
推荐指数
2
解决办法
2万
查看次数

如何优化这个MySQL查询

当数据库很小时,这个查询工作正常,但是现在数据库中有数百万行,我意识到我应该先考虑优化它.它正在查看超过600,000行并且正在使用where; 使用临时; 使用filesort(导致执行时间为5-10秒).它正在使用字段'battle_type'上的索引.

SELECT username, SUM( outcome ) AS wins, COUNT( * ) - SUM( outcome ) AS losses
FROM tblBattleHistory
WHERE battle_type =  '0' && outcome <  '2'
GROUP BY username
ORDER BY wins DESC , losses ASC , username ASC 
LIMIT 0 , 50
Run Code Online (Sandbox Code Playgroud)

mysql sql query-optimization

5
推荐指数
2
解决办法
214
查看次数

在PHP中向float中添加一个整数会将float舍入为1位小数

例如,我有这行代码:

echo 10359023529 + 0.2137582935;
Run Code Online (Sandbox Code Playgroud)

为什么会这样:

10359023529.2

代替:

10359023529.2137582935

php floating-point rounding

5
推荐指数
1
解决办法
4831
查看次数

如何清除MySQL的MEMORY表中的开销(Data_free)?

我在MySQL中有一个用于实时聊天的MEMORY表(也许这不是为此的最佳表类型?),并且每晚删除行以使聊天日志可管理,从而导致表开销。但是,由于您无法在MEMORY表上运行OPTIMIZE,如何摆脱开销(Data_free在中show table status)?

mysql memory overhead

5
推荐指数
1
解决办法
3996
查看次数

如何为网站做焦点小组

我过去一年一直在开发一款新的在线游戏.该网站最近进行了beta测试,我希望在今年秋天推出黄金版.我从一些人那里听说他们第一次注册时很困惑,这让我想到了一个由各种类型的人组成的焦点小组(比如游戏玩家和非游戏玩家).我不确定如何设立焦点小组或如何让人们去做.

我到了一所大学,所以我觉得我有这个在我身边.我应该让人们亲自去做,还是我可以在网上做的事情?我有点倾向于面对面的事情.我想有15-20个人在线游戏的第一次报名的各种经验,告诉我他们喜欢什么,不喜欢,以及他们大约一个小时不理解的东西.我需要付钱给人,还是......?

只是想知道是否有人这样做过,我不太确定网站有多常见,但我非常认真地让这个网站尽可能地为最广泛的用户服务.

testing usability-testing web

4
推荐指数
1
解决办法
1769
查看次数

使用自动答题器阻止用户

我在用户欺骗我的在线游戏时遇到一些问题,使用宏按一定顺序自动点击屏幕上的某些位置,以自动执行各种任务,而无需实际玩游戏.是否有任何方法可用于阻止此类活动,而无需在整个网站上涂抹CAPTCHA并破坏诚实用户的体验?

编辑:我忘了提,这是一个基于网站的游戏,而不是使用闪光灯.

macros captcha anti-cheat

4
推荐指数
1
解决办法
1199
查看次数

使用PHP CURL防止远程脚本登录网站

有哪些方法可用于保护登录页面无法使用CURL通过远程PHP脚本登录?检查引用者和用户代理将不起作用,因为可以使用CURL进行设置.理想的解决方案是在不使用CAPTCHA的情况下解决这个问题,这个问题的关键在于尝试找出是否可行.

php security curl login

4
推荐指数
1
解决办法
2504
查看次数

Node.js请求随机开始挂起,直到服务器重启才会清除

我在我们的网络应用程序上遇到了一个非常奇怪且看似随机的问题,我似乎无法成功调试.它可以在10分钟到6小时之间运行正常,然后突然间没有进出服务器的远程请求,它们只是挂起(这包括常规的http和Web套接字请求).奇怪的是,定期访问该站点仍然有效,直到达到操作系统文件描述符限制,然后http完全崩溃所有停止的连接.

没有错误,但是当问题开始时会抛出以下错误(我认为这是正在发生的事情的副作用而不是原因).

TypeError: Cannot read property '0' of null
    at null.<anonymous> (/app/node_modules/mongojs/node_modules/mongodb/lib/mongodb/collection.js:504:22)
    at args.(anonymous function) (/app/node_modules/strong-agent/lib/proxy.js:85:18)
    at g (events.js:175:14)
    at EventEmitter.emit (events.js:98:17)
    at Base.__executeAllServerSpecificErrorCallbacks (/app/node_modules/mongojs/node_modules/mongodb/lib/mongodb/connection/base.js:315:29)
    at /app/node_modules/mongojs/node_modules/mongodb/lib/mongodb/connection/repl_set/ha.js:273:22
    at /app/node_modules/mongojs/node_modules/mongodb/lib/mongodb/connection/repl_set/ha.js:370:11
    at /app/node_modules/mongojs/node_modules/mongodb/lib/mongodb/connection/repl_set/ha.js:352:28
    at _callback (/app/node_modules/mongojs/node_modules/mongodb/lib/mongodb/db.js:670:5)
    at /app/node_modules/mongojs/node_modules/mongodb/lib/mongodb/auth/mongodb_cr.js:47:13
Run Code Online (Sandbox Code Playgroud)

我已经尝试提高文件描述符限制和全局代理maxSockets而不影响此行为.当这种情况发生时,没有流量涌入,并且在高峰时段和非高峰时段经常发生.CPU使用率始终保持在5%以下,并且在崩溃前或崩溃期间没有任何可察觉的变化.服务器也永远不会低于1GB的可用内存.

堆栈:SmartOS云服务器(Joyent),Express,Socket.io,MongoDB和Redis.

我已经调试了好几天了,完全没有想法去哪看.希望有人在SO上遇到类似的东西或对可以尝试或测试的东西有不同的想法.

javascript unix node.js express socket.io

4
推荐指数
1
解决办法
1336
查看次数

在Vue.js服务器端渲染中跟踪内存泄漏?

我们有一个Vue.js(v2.2.6)应用程序在生产中运行,基于Hacker News演示应用程序结构进行服务器端渲染.我们有一个内存泄漏导致进程耗尽内存并在大约6-12小时后崩溃,我们已经开始在服务器上获取堆快照以尝试跟踪问题.

然而,我们已经挖掘了这些好几天,并没有真正得到任何地方.突出的事情(正如您在下面的屏幕截图中看到的)是有很多实例VueComponentVue$2正在创建并且永远不会从内存中删除.我对Vue服务器端渲染的内部结构知之甚少,不知道这是否是一个真正的领导者,如果是的话,从哪里可以看到.

在此输入图像描述 在此输入图像描述

有没有人碰到这样的事情,或者有什么想法,我们可能会找出可能导致这种情况的原因?

javascript memory-leaks vue.js vue-server-renderer

4
推荐指数
1
解决办法
1863
查看次数

在不杀死服务器的情况下更新用户排名的最佳方法

我有一个以用户排名为中心的网站,但是用户数已经增长到超过50,000,并且它正在给服务器带来压力,以便每隔5分钟更新所有这些.是否有更好的方法可用于至少每5分钟轻松更新一次排名?它不一定是用PHP,它可能是像perl脚本运行的东西或类似的东西能够更好地完成工作(虽然我不知道为什么会这样,只是离开我的选项在这里打开).

这是我目前更新排名的方法:

$get_users = mysql_query("SELECT id FROM users WHERE status = '1' ORDER BY month_score DESC");
$i=0;
while ($a = mysql_fetch_array($get_users)) {
    $i++;
    mysql_query("UPDATE users SET month_rank = '$i' WHERE id = '$a[id]'");
}
Run Code Online (Sandbox Code Playgroud)

更新(解决方案):

这是解决方案代码,执行和更新所有50,000行所需的时间不到1/2秒(根据Tom Haigh的建议将等级作为主键).

mysql_query("TRUNCATE TABLE userRanks");
mysql_query("INSERT INTO userRanks (userid) SELECT id FROM users WHERE status = '1' ORDER BY month_score DESC");
mysql_query("UPDATE users, userRanks SET users.month_rank = userRanks.rank WHERE users.id = userRanks.id");
Run Code Online (Sandbox Code Playgroud)

php mysql optimization query-optimization ranking

3
推荐指数
1
解决办法
737
查看次数