MySQL创建索引...性能问题[关闭]

Posted

技术标签:

【中文标题】MySQL创建索引...性能问题[关闭]【英文标题】:MySQL create index ...performance issues [closed] 【发布时间】:2012-01-31 15:28:18 【问题描述】:

我有一张桌子 - 好吧,三张桌子艺术家、场地和活动......大约 150k 活动。我希望更清楚地了解 mysql 创建索引,因为它与我的具体问题有关。这个问题基本上是 php 软件需要很长时间才能加载一个正在提取这些数据的页面......太长了。而且我完全没有时间清理代码...仅用于优化 mysql、memcache 可能吗?添加更多内存等。顺便说一下,所有数据都是文本...

欢迎提出任何想法!

谢谢~

【问题讨论】:

你知道什么查询需要很长时间才能完成吗? 您能显示所涉及表的CREATE TABLE 语法吗? 您的具体问题是什么?什么需要很长时间?您的问题与CREATE INDEX 有何关系? 【参考方案1】:

基本上,您希望在最常用于搜索表中记录的字段上创建索引。 CREATE INDEX documentation

要更清楚地了解您的问题,您需要确定您认为执行速度过慢的主要查询,并对其运行EXPLAIN 查询。该输出将帮助您了解应为哪些列编制索引以提高应用程序的性能。

【讨论】:

【参考方案2】:

检查 MySQL slow query log 以确定哪些查询导致延迟,然后在它们上运行 EXPLAIN 以查看正在使用哪些(如果有)索引。如果您看到没有使用索引,请考虑将索引添加到相关列。此类列将是 WHERE 和 JOIN 子句中使用的列。例如,如果您在 venue_id 上将 venues 加入到 events,您可能希望索引 events.venue_id 以提高 JOIN 性能。

例如:

CREATE INDEX event_venue_id ON events (venue_id);

【讨论】:

以上是关于MySQL创建索引...性能问题[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

高性能MySQL-第五章创建高性能的索引

Mysql优化之创建高性能索引

高性能MySQL——创建高性能的索引

高性能MySQL-第五章创建高性能的索引

高性能MySQL之创建高性能的索引

MySQL 索引知识整理(创建高性能的索引)