mysql - 加快Mysql查询搜索速度

标签 mysql

我们有一个已有 10 年历史的 mysql 数据表。对于每个查询,它将搜索 2005 年至 2015 年的数据。但是,对我来说最有用的数据将是最近几天或几周。是否可以使用某些命令从表末尾询问查询搜索。

例如,

select *from Portions where Date="20151126" limit 5;

这个简单的查询需要很长时间才能运行。

最佳答案

首先,检查数据库的结构。您可能已将日期保存为 VARCHAR,而它们应该保存为 DATE

下一个重要部分是确保表上有一个主键,该主键应该是 INT 类型并且是您的主键。您还应该进行此自动增量,以便它保留表的唯一 ID。结构如下:

--
-- Table structure for table `portions`
--
CREATE TABLE IF NOT EXISTS `portions` (
  `id` int(11) NOT NULL,
  `date` date NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

--
-- Indexes for table `portions`
--
ALTER TABLE `portions`
  ADD PRIMARY KEY (`id`);

--
-- AUTO_INCREMENT for table `portions`
--
ALTER TABLE `portions`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;

确保此结构正确并使用正确的语法进行查询:

SELECT * FROM `portions` WHERE `date` = '2015-11-26' LIMIT 5;

现在,您应该发现查询速度快得多。

关于mysql - 加快Mysql查询搜索速度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33941155/

相关文章:

mysql - 文件下载后数据库中没有数据

python - mysql-python mac OSX 10.10 禁用安全身份验证

mysql - mysql中查询平均响应时间

MySQL:别名列名问题

php - 将字段数据处理到mysql数据库的好方法

php - 在 MySQL PDO 中使用 PHP 函数

php - MySQL - 小查询问题

mysql - 如何从帮助程序方法动态返回Diesel相等表达式?

mysql - 在第 1 行的 phpMyAdmin "#1064 You have an error in your SQL syntax - Host: lo' 中导入 SQL DB 时出错”

php - 无效查询 : Data too long for column 'x' at row 'y'