首页
学习
活动
专区
圈层
工具
发布

设置MySQL数据库不区分大小写

我们大家可能都碰到过这种情况:在Linux下,MySQL的表名区分大小写,而在Windows下是不区分,从Windows下导出的数据脚本中使用的是小写,而Hibernate生成的SQL中表名是大写的,所以查不出数据...这个时候怎么办呢,显然改程序是不行的,时间上也不允许,所以只能设置MySQL数据库不区分大小写了,大家看以下步骤: 1、查询MySQL是否设置了区分大小写 show variables like "%case...其中lower_case_table_names代表了:0是区分大小写; 1是不区分大小写。显然我这个MySQL是区分大小写的。...已经不区分大小写了: ?...拓展知识 MySQL在Linux下数据库名、表名、列名、别名大小写规则是这样的: 1、数据库名与表名是严格区分大小写的; 2、表的别名是严格区分大小写的; 3、列名与列的别名在所有的情况下均是忽略大小写的

20.2K21
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    MySQL中IS NULL、IS NOT NULL、!=不能用索引?胡扯!

    来源:我们都是小青蛙 作者:小孩子4919 不知道从什么时候开始,网上流传着这么一个说法: MySQL的WHERE子句中包含 IS NULL、IS NOT NULL、!...KEY idx_key_part(key_part1, key_part2, key_part3) ) Engine=InnoDB CHARSET=utf8; 这个表里有10000条记录: mysql...NULL值是怎么在记录中存储的 在MySQL中,每一条记录都有它固定的格式,我们以InnoDB存储引擎的Compact行格式为例,来看一下NULL值是怎样存储的。...所以MySQL优化器在真正执行查询之前,对于每个可能使用到的索引来说,都会预先计算一下需要扫描的二级索引记录的数量,比方说对于下边这个查询: SELECT * FROM s1 WHERE key1 IS...不信谣,不传谣 大家可以看到,MySQL中决定使不使用某个索引执行查询的依据很简单:就是成本够不够小。而不是是否在WHERE子句中用了IS NULL、IS NOT NULL、!=这些条件。

    5.8K30

    为啥不能用uuid做MySQL的主键 ?

    在mysql中设计表的时候,mysql官方推荐不要使用uuid或者不连续不重复的雪花id(long形且唯一,单机递增),而是推荐连续自增的主键id,官方的推荐是auto_increment,...那么为什么不建议采用uuid,使用uuid究竟有什么坏处?...本篇博客的目录 mysql程序实例 使用uuid和自增id的索引结构对比 总结 一、mysql和程序实例 1.1.要说明这个问题,我们首先来建立三张表 分别是user_auto_key,user_uuid...并不是,自增id也会存在以下几点问题: ①别人一旦爬取你的数据库,就可以根据数据库的自增id获取到你的业务增长信息,很容易分析出你的经营情况 ②对于高并发的负载,innodb在按主键进行插入的时候会造成明显的锁争用...在实际的开发中还是根据mysql的官方推荐最好使用自增id,mysql博大精深,内部还有很多值得优化的点需要我们学习。

    4.8K20

    MySQL中IS NULL、IS NOT NULL、!=不能用索引?胡扯!

    不知道从什么时候开始,网上流传着这么一个说法: MySQL的WHERE子句中包含 IS NULL、IS NOT NULL、!= 这些条件时便不能使用索引查询,只能使用全表扫描。...KEY idx_key_part(key_part1, key_part2, key_part3) ) Engine=InnoDB CHARSET=utf8; 这个表里有10000条记录: mysql...NULL值是怎么在记录中存储的 在MySQL中,每一条记录都有它固定的格式,我们以InnoDB存储引擎的Compact行格式为例,来看一下NULL值是怎样存储的。...所以MySQL优化器在真正执行查询之前,对于每个可能使用到的索引来说,都会预先计算一下需要扫描的二级索引记录的数量,比方说对于下边这个查询: SELECT * FROM s1 WHERE key1 IS...不信谣,不传谣 大家可以看到,MySQL中决定使不使用某个索引执行查询的依据很简单:就是成本够不够小。而不是是否在WHERE子句中用了IS NULL、IS NOT NULL、!=这些条件。

    3.2K20

    还能用mysql实现分布式锁?

    目前比较流行的有以下几种: 数据库,通过数据库可以实现分布式锁,但是高并发的情况下对数据库的压力比较大,所以很少使用。...基于数据库的分布式锁 思路:基于数据库悲观锁去实现分布式锁,用的主要是select ... for update。...最终我们数据库的情况是这样的: ? 订单记录 ? 产品库存记录 很明显,我们到此数据库的库存和订单数量也都正确了。...到此我们基于数据库的分布式锁实战演示完成,下面我们来归纳一下如果使用这种锁,有哪些优点以及缺点。 优点:简单方便、易于理解、易于操作。 缺点:并发量大的时候对数据库的压力会比较大。...建议:作为锁的数据库和业务数据库分开。 写在最后 对于上述数据库分布式锁,其实在我们的日常开发中用的也是比较少的。

    1.6K30

    MySQL中IS NULL、IS NOT NULL、!=不能用索引?胡扯!

    不知道从什么时候开始,网上流传着这么一个说法: MySQL的WHERE子句中包含 IS NULL、IS NOT NULL、!= 这些条件时便不能使用索引查询,只能使用全表扫描。...KEY idx_key_part(key_part1, key_part2, key_part3) ) Engine=InnoDB CHARSET=utf8; 这个表里有10000条记录: mysql...NULL值是怎么在记录中存储的 在MySQL中,每一条记录都有它固定的格式,我们以InnoDB存储引擎的Compact行格式为例,来看一下NULL值是怎样存储的。...所以MySQL优化器在真正执行查询之前,对于每个可能使用到的索引来说,都会预先计算一下需要扫描的二级索引记录的数量,比方说对于下边这个查询: SELECT * FROM s1 WHERE key1 IS...不信谣,不传谣 大家可以看到,MySQL中决定使不使用某个索引执行查询的依据很简单:就是成本够不够小。而不是是否在WHERE子句中用了IS NULL、IS NOT NULL、!=这些条件。

    3.5K30

    连接数据库失败,难道MySQL 5.7客户端与8.0数据库不兼容?

    连接数据库失败,难道MySQL 5.7客户端与8.0数据库不兼容? 前言 1. MySQL 8.0数据库连接失败 2. 连接失败与SSL相关 3....解决方案 前言 线上业务数据库升级到MySQL 8.0.28之后,业务侧使用MySQL 5.5版本的mysql_api连接数据库正常,但是我们管理端使用旧的MySQL 5.7客户端连接数据库却是失败的。...难道MySQL 5.7的客户端与8.0的数据库之间不兼容? 这个问题可就比较严重了,可能成为数据库升级路上的拦路虎。一下就勾起了吹水老王极大的兴致,我们一起来分析一下。 1....MySQL 8.0数据库连接失败 我们线上将一套数据库从MySQL 5.7.26升级到MySQL 8.0.28之后,业务侧有两种程序语言,c++程序通过MYSQL_API连接数据库,java程序通过JDBC...默认会尝试与数据库端以TLSV1或TLSV1.1版本的SSL建立加密连接,TLS版本在数据库层和客户端之间的不兼容导致MySQL 5.7的客户端无法连接MySQL 8.0.28以上数据库。

    14.9K31

    MySQL replace命令,不建议使用。

    MySQL replace操作导致主从自增主键不一致 今天在线上遇到一个问题,是由于replace语法导致的主从自增主键不一致问题,这里我模拟了一下,问题能够稳定复现。...希望大家后续过程中,不要踩坑 01 问题还原 环境介绍: MySQL版本5.7.18 关键参数介绍: binlog_format:row binlog_row_image:full 主库操作 主库上创建一个表...*/; 在这个实验的过程中,我分别测试了MySQL8.0版本和MySQL5.7版本,发现MySQL8.0的版本,虽然binlog内容一致,但是更新了AUTO_INCREMENT的值。...这个现象,可以理解为MySQL 5.7 版本的一个bug。 03 潜在影响 可能你会想,如果主库此时利用replace操作插入一个不冲突的新的数据记录,这个从库的自增值不就又同步了么。...4 | aaa | 4 | +----+------+------+ 3 rows in set (0.13 sec) 但是新主库的auto_increment值是4,意味着新主库上下一个不指定自增

    3.4K20

    死锁不处理,拿钱走人【mysql】

    官方给出的幻读解释是:只要在一个事务中,第二次select多出了row就算幻读 1.4行锁表锁与页锁 行级锁是mysql中锁定粒度最细的一种锁。...行级锁能大大减少数据库操作的冲突,其加锁粒度最小,但加锁的开销也最大。...行级锁分为共享锁和排他 表级锁是mysql中锁定粒度最大的一种锁,表示对当前操作的整张表加锁,它实现简单,资源消耗较少,被大部分mysql引擎支持。...BDB 支持页级锁 二锁判断和场景 1.1数据库事务的几个隔离级别 mysql数据库,当且仅当引擎是InnoDB,才支持事务; 事务的隔离级别分为:未提交读(read uncommitted)、已提交读...生产环境不推荐使用过大的 innodb_lock_wait_timeout参数值 该参数支持在会话级别修改,方便应用在会话级别单独设置某些特殊操作的行锁等待超时时间,如下: set innodb_lock_wait_timeout

    1.5K20

    MySQL为什么不推荐使用in

    当使用IN语句时,MySQL可能会遇到以下问题: 索引问题:MySQL使用索引来加速查询,但在使用IN语句时,MySQL可能无法有效地使用索引。...当MySQL无法使用索引时,它将执行全表扫描,逐行比较每个值,这会导致查询性能下降。 内存消耗:当使用IN语句时,MySQL需要将值列表中的所有值加载到内存中进行比较。...查询优化器的限制:MySQL的查询优化器在处理IN语句时可能会遇到一些限制。例如,优化器可能无法准确估计IN语句的选择性,从而导致选择不合适的查询计划。...在优化查询性能时,我们可以使用MySQL的查询分析工具来帮助我们理解查询的执行计划和性能瓶颈,从而做出更好的决策。

    2.8K30

    异构数据库迁移不迷路!

    常见的异构迁移场景包括:Oracle到MySQL/PostgreSQL、SQL Server到PostgreSQL、DB2到Oracle等。每种迁移组合都有其各自的特定的技术挑战和解决方案。...现状评估与分析在开始迁移前,必须对源数据库和目标数据库进行全面评估:评估维度具体内容技术要点数据库对象分析表结构、索引、视图、存储过程、函数、触发器等识别不兼容对象,评估转换复杂度数据类型映射源和目标数据库数据类型对应关系处理精度...风险评估与应对迁移前需要识别并评估各类风险:主要风险点:数据一致性风险:迁移过程中数据不一致可能导致业务故障性能风险:目标数据库可能无法达到源数据库的性能水平兼容性风险:应用代码可能与目标数据库不兼容业务中断风险...应用适配与测试确保应用程序能够与目标数据库正常协作:连接配置更新:修改应用连接字符串和驱动配置SQL语句适配:重写不兼容的SQL语句和函数调用ORM映射调整:更新实体映射和查询逻辑全面测试:功能测试、性能测试...回滚触发条件明确在什么情况下需要执行回滚:数据不一致且无法在合理时间内修复关键业务功能在目标环境无法正常工作性能严重不达标,影响业务运行出现严重安全漏洞或合规问题迁移过程严重超时,影响业务连续性2.

    22810
    领券