mysql convert函数性能简单测试

得到了这样一个需求,需要按照拼音字母排序,而mysql数据库使用的是utf编码。

如果使用gbk的话,排序规则是按拼音的。

而mysql中convert函数,可以对数据进行转换。

我们对这个convert进行了简单的性能测试,下面介绍一下测试过程,以及测试结果,如有问题,请各位指出。

软硬件环境

硬件配置:2核CPU、2G内存

数据库:Mysql 5.5

表结构


1

2

3

4

5


CREATE TABLE `test_gbk` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`name` varchar(12) DEFAULT NULL,

PRIMARY KEY (`id`)

) ENGINE=InnoDB

 

测试用例

测试sql:
select * from test_gbk order by convert(name using gbk) limit 1;

select * from test_gbk order by name limit 1;”

测试目标

分别用上面两种sql测试4线程和16线程压力测试,主要关注QPS

测试结果

4万行数据

4线程,性能下降14%

16线程,性能下降17%

1万行数据

 

4线程,性能下降15%

16线程,性能下降15%

结论

从简单测试能够看出,性能下降在14%-17%范围内

是否要使用这个函数,大家自己斟酌。

我的建议是尽量不要使用,因为相比于前端应用,我认为数据库服务器的计算资源更加珍贵

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索数据库
, 数据
, 线程
, 测试
, 函数
压力测试
mysql 性能测试工具、mysql性能测试、mysql 5.7 性能测试、如何测试mysql性能、mysql读写性能测试,以便于您获取更多的相关知识。

时间: 2025-01-21 15:13:40

mysql convert函数性能简单测试的相关文章

MySQL中MyISAM引擎与InnoDB引擎性能简单测试

[硬件配置] CPU : AMD2500+ (1.8G) 内存: 1G/现代 硬盘: 80G/IDE [软件配置] OS : Windows XP SP2 SE : PHP5.2.1 DB : MySQL5.0.37 Web: IIS6 [MySQL表结构] CREATE TABLE `myisam` ( `id` int(11) NOT NULL auto_increment, `name` varchar(100) default NULL, `content` text, PRIMARY

MySQL字符函数的压力测试

MySQL中的字符串处理函数非常多,以至于我在整理的这部分内容的时候也眼前一亮,有一种进了大观园的感觉,哦,原来有这个函数,哦,竟然可以这样实现,以前怎么没想到,等等. 比如字符串查找函数,instr,locate,position三个函数的功能都是很相似的.如果要实现一个功能,从字符串foobarbar里面找到bar这个字符串的起始位置,使用Instr,locate,position都可以实现. SELECT INSTR('foobarbar', 'bar'); SELECT LOCATE('

MySQL Profile在5.7的简单测试

MySQL Profile对于分析执行计划的开销来说,还是有一定的帮助,至少在分析一些性能问题的时候有很多的参考依据. 我在5.6, 5.7版本中进行了测试,没发现差别,还是以5.7为例进行演示吧. mysql> select version(); +-----------+ | version() | +-----------+ | 5.7.10    | +-----------+ 1 row in set (0.00 sec) 传统的使用Profile都是使用show profile这样的

MySQL索引条件下推的简单测试

自MySQL 5.6开始,在索引方面有了一些改进,比如索引条件下推(Index condition pushdown,ICP),严格来说属于优化器层面的改进. 如果简单来理解,就是优化器会尽可能的把index condition的处理从Server层下推到存储引擎层.举一个例子,有一个表中含有组合索引idx_cols包含(c1,c2,-,cn)n个列,如果在c1上存在范围扫描的where条件,那么剩余的c2,-,cn这n-1个上索引都无法用来提取和过滤数据,而ICP就是把这个事情优化一下. 我们

MySQL加密函数保护Web网站敏感数据

如果您正在运行使用MySQL的Web应用程序,那么它把密码或者其他敏感信息保存在应用程序里的机会就很大.保护这些数据免受黑客或者窥探者的获取是一个令人关注的重要问题,因为您既不能让未经授权的人员使用或者破坏应用程序,同时还要保证您的竞争优势.幸运的是,MySQL带有很多设计用来提供这种类型安全的加密函数.本文概述了其中的一些函数,并说明了如何使用它们,以及它们能够提供的不同级别的安全. 双向加密 就让我们从最简单的加密开始:双向加密.在这里,一段数据通过一个密钥被加密,只能够由知道这个密钥的人来

ibaties+mysql+java 查询性能问题

问题描述 ibaties+mysql+java 查询性能问题 通过ibaties 访问数据库返回列表给Java list,mysql控制台查询0.004秒 Java代码执行1分钟左右.有些时候 通过mysql管理工具查询几百万数据简单的sql实际看到数据时间是4分钟,系统返回的查询时间时0.002秒这种问题是由于什么引起的.怎样优化此类问题谢谢. 补充一下:不考虑硬件. 解决方案 可能的原因为: 1. 和数据库的IO负载有关: 2. mybatis查询开启了缓存. 针对查询,优化查询使用的索引,

构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(37)-文章发布系统④-百万级数据和千万级数据简单测试

原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(37)-文章发布系统④-百万级数据和千万级数据简单测试 系列目录 我想测试EF在一百万条数据下的显示时间!这分数据应该有很多同学想要,看看EF的性能! 服务器 现在来向SQL2008R2插入1000000条数据吧 declare @i int; set @i=0; while @i<1000000 begin INSERT INTO [AppDB].[dbo].[MIS_Article] ([Id] ,

mysql支持的数据类型及其测试

原文:mysql支持的数据类型及其测试 1.基础知识 1.1如何来查看mysql的帮助手册 ?int Help float; 1.2创建表的规则 CREATE TABLE [IF NOT EXISTS] tbl_name( 字段名 字段类型 [完整性的约束条件]); 1.3如何向表中插入数据 INSERT [INTO] tab_name [(字段名称--)] VALUES (值--) 1.4Mysql数据类型 1.数值型 整数类型 TINYINT:范围0~255;-128~127占用1字节 SM

mysql自定义函数实现中文首字母拼音查询

例子1 mysql功能函数 实现拼音查询: 功能:输入中文字符串每个字的首字母,即可检索出相应数据. 使用方法:直接使用py(字段名)='keywords',即可.  代码如下 复制代码 DELIMITER $$ CREATE FUNCTION `PYFIRST`(P_NAME VARCHAR(255)) RETURNS varchar(255) CHARSET utf8  BEGIN      DECLARE V_RETURN VARCHAR(255);      SET V_RETURN =