mysql的大小写对性能的影响问题

本文涉及的产品
RDS Agent(兼容OpenClaw),2核4GB
RDS AI 助手,专业版
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
简介: mysql的大小写对性能的影响问题

一. mysql对大小写是否敏感是根据平台区分的

1. 默认情况下: linux环境严格区分大小写,windows环境下不区分大小写**

所以正常开发的时候在本地测试数据库名或者表名大小写没关系,迁移到linux服务器的时候就会报错。一定要注意这个问题.

MySQL在Linux下数据库名、表名、列名、别名大小写规则是这样的:


  1. 数据库名与表名是严格区分大小写的;
  2. 表的别名是严格区分大小写的;
  3. 列名与列的别名在所有的情况下均是忽略大小写的;
  4. 变量名也是严格区分大小写的;


2.linux环境下更改mysql表名大小写不敏感

# 编辑配置文件
vi /etc/my.cnf
# 在[mysqld]后添加添加
lower_case_table_names=1
# 重启服务
service mysqld stop
service mysqld start

二、sql语句的关键字大小写对sql语句性能的影响

1. 使用存储过程模拟20万数据

# 创建表
CREATE TABLE employees (
  id INT NOT NULL,
  fname VARCHAR(30),
  lname VARCHAR(30),
  birth TIMESTAMP,
  hired DATE NOT NULL DEFAULT '1970-01-01',
  separated DATE NOT NULL DEFAULT '9999-12-31',
  job_code INT NOT NULL,
  store_id INT NOT NULL
  )
  partition BY RANGE (store_id) (
  partition p0 VALUES LESS THAN (10000),
  partition p1 VALUES LESS THAN (50000),
  partition p2 VALUES LESS THAN (100000),
  partition p3 VALUES LESS THAN (150000),
  Partition p4 VALUES LESS THAN MAXVALUE
  );
 # 创建存储过程
 CREATE PROCEDURE BatchInsert(IN init INT, IN loop_time INT)  -- 第一个参数为初始ID号(可自定义),第二个位生成MySQL记录个数
  BEGIN
      DECLARE Var INT;
      DECLARE ID INT;
      SET Var = 0;
      SET ID = init;
      WHILE Var < loop_time DO
          insert into employees(id, fname, lname, birth, hired, separated, job_code, store_id) values (ID, CONCAT('chen', ID), CONCAT('haixiang', ID), Now(), Now(), Now(), 1, ID);
          SET ID = ID + 1;
          SET Var = Var + 1;
      END WHILE;
  END;
 # 调用存储过程
CALL BatchInsert(30036, 200000);   -- 调用存储过程插入函数

测试关键字及字段名,表名大小写对sql执行时间的影响

select id ,fname lname ,birth ,hired ,separated,job_code,store_id from employees 
# 0.605s  0.610s 0.572S 平均值0.595
SELECT id ,fname lname ,birth ,hired ,separated,job_code,store_id FROM employees
 # 0.570S  0.576s 0.594S  平均值:0.580s
SELECT ID ,FNAME LNAME ,BIRTH ,HIRED ,SEPARATED,JOB_CODE,STORE_ID FROM EMPLOYEES
 # 0.634s 0.576s 0.575s  平均值: 0595s
select id c1 ,fname c2, lname c3 ,birth c4 ,hired  c5,separated c6,job_code c7,store_id c8 from employees
 # 0.629s 0.653s 0.685s 平均值:0.655s
SELECT id c1 ,fname c2, lname c3 ,birth c4 ,hired  c5,separated c6,job_code c7,store_id c8 FROM employees 
# 0.663s .0647s 0.625s 平均值:0.645s
SELECT ID C1 ,FNAME C2, LNAME C3 ,BIRTH C4 ,HIRED  C5,SEPARATED C6,JOB_CODE C7,STORE_ID C8 FROM EMPLOYEES 
# 0.648s 0.645s 0.657s 平均值: 0.650s

总结:

  1. 同样一句sql,性能比较:关键字大写>所有语句大写>所有语句小写
  2. 为查询结果相同的sql,为每一列起别名以后使sql语句性能降低
  3. 建议在日常开发中将sql的关键字大写,以提高效率


相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
目录
相关文章
|
9月前
|
缓存 关系型数据库 BI
使用MYSQL Report分析数据库性能(下)
使用MYSQL Report分析数据库性能
585 158
|
9月前
|
缓存 监控 关系型数据库
使用MYSQL Report分析数据库性能(中)
使用MYSQL Report分析数据库性能
622 156
|
9月前
|
缓存 监控 关系型数据库
使用MYSQL Report分析数据库性能(上)
最终建议:当前系统是完美的读密集型负载模型,优化重点应放在减少行读取量和提高数据定位效率。通过索引优化、分区策略和内存缓存,预期可降低30%的CPU负载,同时保持100%的缓冲池命中率。建议每百万次查询后刷新统计信息以持续优化
731 161
|
负载均衡 算法 关系型数据库
大数据大厂之MySQL数据库课程设计:揭秘MySQL集群架构负载均衡核心算法:从理论到Java代码实战,让你的数据库性能飙升!
本文聚焦 MySQL 集群架构中的负载均衡算法,阐述其重要性。详细介绍轮询、加权轮询、最少连接、加权最少连接、随机、源地址哈希等常用算法,分析各自优缺点及适用场景。并提供 Java 语言代码实现示例,助力直观理解。文章结构清晰,语言通俗易懂,对理解和应用负载均衡算法具有实用价值和参考价值。
大数据大厂之MySQL数据库课程设计:揭秘MySQL集群架构负载均衡核心算法:从理论到Java代码实战,让你的数据库性能飙升!
|
缓存 关系型数据库 MySQL
MySQL索引策略与查询性能调优实战
在实际应用中,需要根据具体的业务需求和查询模式,综合运用索引策略和查询性能调优方法,不断地测试和优化,以提高MySQL数据库的查询性能。
759 66
|
关系型数据库 MySQL 分布式数据库
Super MySQL|揭秘PolarDB全异步执行架构,高并发场景性能利器
阿里云瑶池旗下的云原生数据库PolarDB MySQL版设计了基于协程的全异步执行架构,实现鉴权、事务提交、锁等待等核心逻辑的异步化执行,这是业界首个真正意义上实现全异步执行架构的MySQL数据库产品,显著提升了PolarDB MySQL的高并发处理能力,其中通用写入性能提升超过70%,长尾延迟降低60%以上。
|
存储 SQL 关系型数据库
京东面试:mysql深度分页 严重影响性能?根本原因是什么?如何优化?
京东面试:mysql深度分页 严重影响性能?根本原因是什么?如何优化?
京东面试:mysql深度分页 严重影响性能?根本原因是什么?如何优化?
|
10月前
|
缓存 关系型数据库 MySQL
MySQL数据库性能调优:实用技术与策略
通过秉持以上的策略实施具体的优化措施,可以确保MySQL数据库的高效稳定运行。务必结合具体情况,动态调整优化策略,才能充分发挥数据库的性能潜力。
514 0
|
存储 关系型数据库 MySQL
MySQL细节优化:关闭大小写敏感功能的方法。
通过这种方法,你就可以成功关闭 MySQL 的大小写敏感功能,让你的数据库操作更加便捷。
1202 19
|
缓存 关系型数据库 MySQL
ThinkPHP框架show columns引发mysql性能问题
ThinkPHP框架的show columns引发mysql性能问题,结尾有关闭方式。
520 13

推荐镜像

更多