【问题标题】:MYSQL create command optimization?MYSQL创建命令优化?
【发布时间】:2010-11-14 04:43:05
【问题描述】:

以下是在mysql数据库中创建表的代码。

CREATE TABLE IF NOT EXISTS `hightraffic` (
  `id` int(11) NOT NULL auto_increment,
  `videoID` int(11) NOT NULL default '0',
  `userid` int(11) NOT NULL,
  `name` varchar(255) NOT NULL default '',
  `title` int(11) NOT NULL default '0',
  `date` datetime NOT NULL default '0000-00-00 00:00:00',
  PRIMARY KEY  (`id`),
  KEY `videoID ` (`videoID `),
  KEY `date` (`date`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=342 ;

我想知道以下内容:

  1. 什么是KEY,是主键还是索引?
  2. 为什么 videoID 和 date 应用了 KEY?
  3. 如果 videoId 和 date 上没有 KEY,那么是否存在任何性能问题,或者如果存在,那么性能优势是什么?为什么?

【问题讨论】:

  • 疯狂的想法,但您可能想阅读 MySQL 在线文档(或者实际上是 SQL 的一般背景知识)——它应该比 SO 等社区资源更快地阐明这些问题。

标签: sql mysql database performance optimization


【解决方案1】:
  1. KEY 只是一个索引。
  2. 这是您的架构,这是一个奇怪的问题。你是不是在网上某个地方找到了这个?您可能想阅读database indexes
  3. 如果这些值上没有键(索引),则在按这些列进行过滤时,您将无法从索引中受益。请参阅上面的链接。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-14
    • 2019-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-13
    相关资源
    最近更新 更多