mysql 字符串当索引和整数当索引哪个快

发布网友 发布时间:2022-04-23 16:58

我来回答

5个回答

懂视网 时间:2022-05-02 20:01

一、问题说明

为了简便在存储时我们经常将整型字段也以字符串形式存储(如id值),但在筛选比较时就需要将该字段转为数值类型。

 

二、处理办法

2.1 使用cast函数进行类型转换

cast函数格式----cast(column_name as target_value_type),例如现有edb_id字段将其转为整型:cast(edb_id as SIGNED)

cast函数支持类型---- 二进制(BINARY)、字符型(CHAR())、日期 (DATE)、时间(TIME)、日期时间型(DATETIME)、浮点数(DECIMAL) 、整型(SIGNED)、无符号整数(UNSIGNED)

整句形如----select * from edb_records where cast(edb_id as SIGNED) > 40000;

 

2.2 使用convert函数进行类型转换

convert和cast功能和用法是一样的,只是参数格式不一样。

convert函数格式----convert(column_name, target_value_type),例如现有edb_id字段将其转为整型:convert(edb_id, SIGNED)

整句形如----select * from edb_records where convert(edb_id, SIGNED) > 40000;

 

三、字符串比较形式说明

整型筛选----select * from edb_records where cast(edb_id as SIGNED) > 40000;----此条语句返回所有edb_id作为数值时大于40000的记录。

字符型筛选----select * from edb_records where edb_id > ‘40000‘;----此条语句返回所有edb_id作为数值时大于40000的记录外,因为是字符串比较所以edb_id为999等的记录也将会返回。

 

参考:

http://www.cnblogs.com/xiaoleiel/p/8316508.html

https://www.cnblogs.com/emanlee/p/5998683.html

MySQL字符串列与整数比较

标签:语句   select   blog   date   char   字段   mysq   rds   类型转换   

热心网友 时间:2022-05-02 17:09

整数快
两者的主要差别就在于,字符类型有字符集的概念,每次从存储端到展现端之间都有一个字符集编码的过程。而这一过程主要消耗的就是CPU资源。。。。
你可以制造大批量数据,一个设置整数,一个设置为字符串试一试

热心网友 时间:2022-05-02 18:27

当然是整数,一般不建议直接使用字符串做索引,通常用字符串生成一个hash整数,用这个整数做索引。

热心网友 时间:2022-05-02 20:01

当你提出这个问题的时候,恭喜您,入门了。
想要提升,就要学会做实验。网上牛*多数时候是对的,但你的环境或许有差异。
这个问题很简单,自己生成100万条随机数,分别放2个字段或2个表进行查询试试看。

热心网友 时间:2022-05-03 00:01

这种资源建议去官网论坛或者一些其他比较知名的大论坛里咨询
如果曾经有人在网上发布,或有网站下载,一般都会被搜索引擎收录,如果搜不到,你可以找一下相关的论坛
最好是那种人气比较高的论坛,注册会员,发帖求助,会有高手帮你的。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com