php - Mysql 'where clause' 有长表?

标签 php mysql sql

我设计了一个类似 bit.ly 的网站,但有点不同。用php和mysql编写。当我在本地主机上运行它时,一切似乎都工作正常,页面加载时间为 4.5 毫秒,我高兴极了。

我将其上传到服务器,用户开始浏览该网站并使用它。一切似乎都工作正常,直到主表开始达到数百万行。

该表目前有 100 万行长度(必须如此),并且还在不断增长。需要该表的页面需要 500 毫秒才能加载...接下来是 mysql 查询:

select link
from table
where kind = $kind and kind_idd = $kind_idd and live = 1;

它可以返回超过 1 个链接,事实上,它通常返回 10-50 个链接。

问题在于 where 子句。我确信 mysql 应该有一些东西可以让它更快。我一直在问谷歌,我找到了索引、 key 等。但我找不到一个网站可以为傻瓜解释它。如果有人能给我一个例子来让这件事快速进行,我将非常感激。

谢谢!

最佳答案

尝试使用mysql explain plan 这样您就可以看到发生了什么。

您可能需要确保您在 kind、kind_idd 和 live 上有索引,请参阅 http://dev.mysql.com/doc/refman/5.0/en/create-index.html

关于php - Mysql 'where clause' 有长表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19531538/

相关文章:

mysql - 哪个更快 : multiple single INSERTs or one multiple-row INSERT?

php - 行之间的时间差

sql - 无法比较图表中 System.Int32 和 System.String 类型的数据

mysql - MySql 字段列表中的未知列

php - 在 RESTful API 中使用干净的 URL

php - 数据库

php - 在 Laravel 中执行连接查询的更好方法

php - sql中如何查找一列中有多少个不同的单词?

phpmailer 与 yahoo 无法在任何设置下工作

mysql - 如何向 Rails 中的 ActiveRecord 对象添加属性/使用 method_missing 方法?