MYSQL 提高超大表的性能

标签 mysql

我有这张 table

CREATE TABLE llegada (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `emc_id` int(10) unsigned DEFAULT NULL,
  `cuartel_id` int(10) unsigned DEFAULT NULL,
  `fecha` datetime DEFAULT NULL,
  `nro_entrada` int(10) unsigned DEFAULT NULL,
  `valor` varchar(10) DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `ind_llegada` (`emc_id`,`cuartel_id`,`fecha`,`nro_entrada`)
) ENGINE=MyISAM AUTO_INCREMENT=18822145 DEFAULT CHARSET=latin1

此平板电脑大约有 100000000 条记录。为了提高性能,我想根据年份将该表分为 6 个部分。但发生前两个问题我不知道如何做到这一点,也不知道是否会修改对表的查询。我的想法是不必修改访问数据库的查询页面。 感谢您的提前。

最佳答案

我从未听说过有一种方法可以在不创建多个数据库的情况下对 sql 本身进行分区。正如您所说,您需要修改查询页面或信息存储到站点上各种数据库的方式,无论如何您都应该这样做,因为这会浪费大量处理时间。我很惊讶它还没有影响您的用户体验。

关于MYSQL 提高超大表的性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34723407/

相关文章:

Java MYSQL/JDBC 查询从缓存连接返回陈旧数据

mysql - 在匹配MySQL中搜索更多他们的一个术语

mysql - 如何连接两个表并在第三个表中显示结果

Python/PonyORM/MySQL - 使用多个 URL 参数进行查询

mysql - 我如何使用 mysql 获取最近 10 天的记录?

mysql - 在子查询 where 子句中引用列

mysql - 连接返回空

php - Laravel 仅使用 MongoDB 还是使用 MongoDB + MySQL 进行身份验证?

php - 我怎样才能让这个 php 返回一个 sql db 的整个列

MySQL 按列 1/列 2 排序