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创建索引...性能问题[关闭]的主要内容,如果未能解决你的问题,请参考以下文章