mysql 索引例子_MySQL数据库表索引例子

MySQL常见问题解答:如何创建MySQL或MariaDB数据库表索引?

下面是如何在MySQL数据库表上创建索引的例子,在这个特定的例子中,我的表使用了InnoDB数据库引擎,但是,这并不重要,它只是一个支持外键关系的MySQL数据库引擎。

首先,这个是一个MySQL表的SQL定义,我已经命名为ftp_files :CREATE TABLE ftp_files (

id int unsigned auto_increment not null,

ftp_username varchar(32),

ftp_command varchar(4), # STOR, DELE, RNFR, RNTO

ftp_root_dir varchar(1024), # ex: /ftp/customer1/file1.pdf

file_name varchar(1024) not null,

file_size_bytes bigint unsigned not null,

primary key (id)

) ENGINE=InnoDB;

很多人喜欢在CREATE TABLE语句中创建索引,但是,我更喜欢在CREATE TABLE语句之后添加索引,然后显示CREATE INDEX定义。

如何创建多列MySQL表索引

获取到索引,在定义表之后,我添加了以下代码行,以便在ftp_files数据库表中创建索引:CREATE INDEX idx_ftp_files_command_and_dir

ON ftp_files(ftp_command, ftp_root_dir);

这将在ftp_command和ftp_root_dir这两个字段上创建索引,这个索引将提高针对这些字段运行的查询的性能,在我的例子中,我有一系列针对此表运行的"worker"程序,继续运行如下的查询:SELECT * FROM ftp_files

WHERE ftp_command='STOR'

AND ftp_root_dir='/ftp/customer1'

因为我知道这个表会很大,因为我知道这个查询每天运行数千次,响应时间很重要。

如何创建单列索引

我已经展示了如何在MySQL数据库表上创建多列索引,为完整起见,我想我还应该展示如何创建一个单列索引,这实际上更简单:CREATE INDEX idx_ftp_files_username

ON ftp_files(ftp_username);

如果我正在对此字段运行查询,则这个索引将很有用,如下所示:SELECT * FROM ftp_files

WHERE UPPER(ftp_username)='FRED'

了解更多信息

有关创建MySQL索引的更多信息,我推荐MySQL CREATE INDEX的文档页面。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值