MySQL里bool类型字段是否需要添加索引测试

原创 2017年08月08日 11:49:54

测试环境

AMD A8-7650K + 8G + 1TB + Win7 x64
MySQL Community Server v5.5.47

随机生成3276800条记录

insert into `test_index` values(null,round(rand()),round(rand())); -- 重复N次
insert into `test_index` select null,is_haveindex,is_noindex from `test_index`; -- 重复N次

各种字段记录数

+---------------------------------------+
|    is_haveindex   |    is_noindex     |
|---------|---------|---------|---------|
|    1    |    0    |    1    |    0    |
|---------|---------|---------|---------|
| 1458176 | 1818624 | 1671168 | 1605632 |
+---------------------------------------+

MyISAM引擎

CREATE TABLE `test_index` (
  `id` int(11) NOT NULL AUTO_INCREMENT,  `is_haveindex` tinyint(4) DEFAULT NULL,  `is_noindex` tinyint(4) DEFAULT NULL,
  PRIMARY KEY (`id`),  KEY `is_haveindex` (`is_haveindex`)
) ENGINE=MyISAM AUTO_INCREMENT=3276801 DEFAULT CHARSET=utf8mb4;
select count(*) from test_index where is_haveindex=1
时间: 0.469s
select count(*) from test_index where is_haveindex=0
时间: 0.733s
select count(*) from test_index where is_noindex=1
时间: 0.224s
select count(*) from test_index where is_noindex=0
时间: 0.225s

InnoDB引擎

CREATE TABLE `test_index` (
  `id` int(11) NOT NULL AUTO_INCREMENT,  `is_haveindex` tinyint(4) DEFAULT NULL,  `is_noindex` tinyint(4) DEFAULT NULL,
  PRIMARY KEY (`id`),  KEY `is_haveindex` (`is_haveindex`)
) ENGINE=InnoDB AUTO_INCREMENT=3276801 DEFAULT CHARSET=utf8mb4;
select count(*) from test_index where is_haveindex=1
时间: 0.501s
select count(*) from test_index where is_haveindex=0
时间: 0.631s
select count(*) from test_index where is_noindex=1
时间: 1.451s
select count(*) from test_index where is_noindex=0
时间: 1.511s

结论

自己看吧……
版权声明:本文为博主原创文章,随便转载,但是请注明出处。

MySQL 四种特殊数据类型 ENUM、SET、BOOL/BOOLEAN、TINYINT

(一)   数据类型特点 1)         数据类型占用的存储空间与分类 英文名称 中文名称 分类 存储范围 存储空间 ENUM 枚举类型 ...

MySQL数据库之数据类型BOOL/BOOLEAN与TINYINT测试总结

【导读】 网络上很多人咨询mysql是否提供布尔类型?MySQL数据库确实提供布尔类型,此数据类型的关键字可以写成:布尔类型BOOL或布尔类型BOOLEAN,但是MySQL数据库数据类型的布尔类型是...
  • gm_163
  • gm_163
  • 2012年10月09日 18:57
  • 2234

mysql 字段类型对查询效率的影响实验及小范围取值字段不宜添加索引

1. 表ta_app_download_log 中type 类型 varchar(5) (1)第一次查询 [SQL] SELECT COUNT(DISTINCT deviceid) FRO...
  • tszxlzc
  • tszxlzc
  • 2014年09月23日 18:36
  • 525

字段数据类型对索引的影响测试

字段数据类型对执行计划的影响测试 我们有时候会遇到,SQL传递参数的数据类型与表索引字段类型不一致,而无法走索引 SQL> desc test1  Name                    ...

mysql如何确认复合索引有使用到哪些索引字段的测试

一、基本信息 MariaDB [lots]> select @@version; +---------------------+ | @@version           | +----------...

mysql对表进行添加字段、添加索引和添加外键

mysql对表进行添加字段、添加索引和添加外键

MySQL BOOL/BOOLEAN 与 TINYINT 测试总结

【导读】 MySQL数据库产品提供了二种比较特殊的数据类型: SET(集合类型)、ENUM(枚举类型)、BOOL/BOOLEAN(布尔类型),而多数开发人员,甚至DBA从业者对如何使用这三种数据类型...

MySQL BOOL/BOOLEAN 与 TINYINT测试总结

MySQL数据库产品提供了二种比较特殊的数据类型: SET(集合类型)、ENUM(枚举类型)、BOOL/BOOLEAN(布尔类型),而多数开发人员,甚至DBA从业者对如何使用这三种数据类型的应用场 景...
  • neo_yin
  • neo_yin
  • 2012年03月27日 17:15
  • 192

oracle ,mysql,sqlserver 字段设置默认值是否为空测试

oracle ,mysql,sqlserver 字段设置默认值是否为空测试

Mysql中修改字段类型、长度以及添加删除列

1、mysql中修改字段长度: ALTER TABLE tb_article MODIFY COLUMN NAME VARCHAR(50);这里的tb_article为表名,NAME为字段名,50为...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:MySQL里bool类型字段是否需要添加索引测试
举报原因:
原因补充:

(最多只允许输入30个字)