用php操纵mysql中的1500多万条记录?

Nit*_*ish 5 php mysql database rdbms mongodb

我有一个包含1500多万条记录的用户表,在进行注册功能时,我希望检查用户名是否已经存在.我为用户select count(uid) from users where username='webdev'"名列做了索引,当我运行查询" ,.hmmm时,它继续加载空白屏幕最终挂起了.我在我的localhost中使用php 5和mysql 5这样做.所以建议我一些技巧来处理这个问题情况.

这个mongodb是我们本地机器处理这个过程的好方法吗?

谢谢,Nithish.

sha*_*mar 6

如果您只想检查它是否存在,请尝试不要使用count.只是简单select username from users where username='webdev' LIMIT 1可能会更快.

另外varchar,如果不是这样,则将列类型更改为.不要用户text类型.它慢得多.

  • @ajreal,是的,但OP写道,"我希望检查用户名是否已经存在".就此而言,用"LIMIT 1"检查就可以了.不是吗?如果我在这里遗漏了什么,请纠正我. (4认同)
  • @shamittomar:嗯.我相信使用char比在这种情况下使用varchar更好,如果硬盘不是问题.我也经营一个类似的网站,用户名通常永远不会超过40个字符,几乎不会超过25-30个字符.所以我建议做的是将字符数限制为40字符或其他用户名feild(或找到现在最高的存在)并将列类型更改为char(<thatno>)..为什么这样因为如果使用varchar指针需要在检查之前计算每个用户名的长度. (2认同)