大型单表的 MySQL 查询优化 [关闭]
Posted
技术标签:
【中文标题】大型单表的 MySQL 查询优化 [关闭]【英文标题】:MySQL query optimization for large single table [closed] 【发布时间】:2013-05-10 19:31:28 【问题描述】:我想请教一下如何让我的 mysql 查询更高效。我有一个包含 100 万条记录的帖子表。
我没有使用任何联接,它会在 5-10 秒内从数据库中获取结果 - 我不知道如何提高快速检索数据的效率。这是我的查询:
SELECT
post_id, post_title, post_des, post_date,
post_status, user_id, post_price
FROM
post
这是表结构:
CREATE TABLE `post` (
`post_id` int(11) NOT NULL AUTO_INCREMENT,
`post_title` varchar(255) NOT NULL,
`post_des` text NOT NULL,
`post_date` datetime NOT NULL,
`edit_date` datetime NOT NULL,
`post_status` varchar(255) NOT NULL,
`user_id` int(11) NOT NULL,
`featuered` varchar(255) NOT NULL,
`sub_cat_id` int(11) NOT NULL,
`cat_id` int(11) NOT NULL,
`post_price` varchar(100) NOT NULL,
`post_img` varchar(255) NOT NULL DEFAULT 'uploads/no_image.jpg',
`post_country_id` int(11) NOT NULL,
`post_state_id` int(11) NOT NULL,
`post_city_id` int(11) NOT NULL,
`post_ref` varchar(255) NOT NULL,
PRIMARY KEY (`post_id`,`post_date`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
【问题讨论】:
我们需要更多信息。您能发布您的表结构和索引吗? 如果你想一次获取所有条记录,你无法加快速度。你?如果没有,你想获取什么样的数据? 请检查表结构。我在分类网站上使用它,它必须获取所有记录,但通过分页 php 分页使用 .... 但是当我看到 olx 和其他网站以及数百万条记录时,这些网站速度很快 .... 你说的是“分页”?试过LIMIT吗? @MShahzadAkram - 如果没有看到您的 SELECT 语句,我无法回答这个问题。如果您选择post_date
,则在其上添加索引。如果您选择post_title
,请在其上添加索引。
【参考方案1】:
您需要先阅读以下内容: http://dev.mysql.com/doc/refman/5.0/en/mysql-indexes.html
还有这个: How do MySQL indexes work?
【讨论】:
基本上我没有使用任何连接到其他表......我在这个表中有主键,我认为不需要添加更多索引。如果需要,请指导我。谢谢 即使没有其他连接,索引仍然可以提高查询性能。 @MaximeD,请在您的答案中添加更多信息;仅链接的答案不受欢迎。以上是关于大型单表的 MySQL 查询优化 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章