php - 使用 PHP 在 MySQL 中查找帐户名的最有效方法是什么

标签 php mysql sql

我用 php 和 MySQL 编写了一个基本的网络应用程序,它使用查询字符串来查找各种信息。例如:xxxxxxx.com/?profile=1245

非常基本的、初次开发的网络应用类型。

我想创建不同的帐户,每个帐户都有自己的数据集。我想通过使用子域来区分这些帐户。例如:username.xxxxxxxx.com?profile=4527

我在我的 Apache 配置中设置了一个 catchall 以将所有子域转移到我的主域,然后我可以像这样使用 php 拉出该子域:

<?php list( $username ) = explode( ".", $_SERVER[ "HTTP_HOST" ] ); ?>

现在,这是我的问题:

在我看来(我对所有这一切都相当陌生)对我需要在每个页面上执行的每个查询执行基于字符串的搜索将是缓慢且低效的。例如,必须查找 SELECT * WHERE username = sampleuser AND profile = 2745

但这是真的吗?什么是最有效的方法?使用子域的 Web 应用程序通常如何处理此类事情?

在此先感谢大家。

最佳答案

使用子域名效率不高。当您查看 SEO 时。您有许多具有相同内容的域和网站。

我更愿意重写你的情况

www.xxxxx.com/username

然后您可以将用户名重写到您的脚本中。问题是当您为每个用户创建一个新的子域时可能会出现问题。可能是用户缓存了 DNS 请求,因此访问该站点需要花费大量时间。

第二个是你应该尽可能少地查询数据库。在 session 中保存用户名或 ID。

$_SESSION['username'] = 'username';

然后您可以进行查询以从您的数据库中获取信息。

编辑:当您需要更高的性能时,您应该看看 MongoDB 或使用 Memcache 来存储/缓存内容。

关于php - 使用 PHP 在 MySQL 中查找帐户名的最有效方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13963267/

相关文章:

php - Level 5 如何检测哪个文件错误

mysql - 将 mysql 用户定义变量与 group by 条件一起使用

php - 有没有针对php/mysql识别sql注入(inject)的静态分析工具

mysql - 如何使用 mySQL View 和 UPDATE 更改表

sql - 在 SQLite3 中,如何在 LIKE 子句中进行 SQL 转义?

sql - MYSQL 中的动态列名

php - 为什么 Composer 安装不同的包?

php - 如何在不浪费内存的情况下在 PHP 中构建大型 MySQL INSERT 查询

php - 如何将 AddType 添加到 apache 服务器

sql - 在 Postgres 中使用条件 where 子句更新多行?