【问题标题】:MYSQL improve performance in a very big tableMYSQL 在非常大的表中提高性能
【发布时间】:2016-01-11 22:07:39
【问题描述】:

我有这张桌子

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 个部分。但是前两个问题发生了,我不知道该怎么做,也不知道是否会修改对表所做的查询。我的想法不必修改访问数据库的查询页面。 感谢您的提前。

【问题讨论】:

  • 不清楚你的问题是什么。哪些查询性能不佳?为什么你认为分区会有所帮助?
  • 您是否在查询中使用了EXPLAIN

标签: mysql


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-10
    • 2012-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多