我的编程空间,编程开发者的网络收藏夹
学习永远不晚

MySQL常常被我们误会的地方

短信预约 信息系统项目管理师 报名、考试、查分时间动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

MySQL常常被我们误会的地方

MySQL作为数据库的一大主力军,到处存在于我们各种系统中,相信大家都不陌生!但是,你知道你能用不代表你知道细节,那我们就来盘点盘点其中一些我们平时不太注意的地方,一来为了有趣,二来为了不让自己踩坑。

声明:要想知道细节,那就去阅读源码,我实在没那本事,只能从片面上来说一些事!

1、不区分大小写(字段名)

MySQL的查询字段名不区分大小写,但是查询的内容是要区分大小写的,所以能用下划线命名的就不要用大小写来区分命名了,如:
  1. SELECT uid,v_state FROM all_user WHERE username = 'sunyue';
  2. SELECT uid,v_state FROM all_user WHERE USERNAME = 'sunyue';            //与上一个语句结果一样,字段不区分大小写
  3. SELECT uid,v_state FROM all_user WHERE USERname = 'SUNYUE';            //查不到信息,内容要区分大小写
复制代码

2、模糊匹配([_]匹配任意字符)

虽说模糊匹配有点正则的意思,但是你并不能像正则一样自由地在数据库里进行匹配,做到尽量简化匹配就好!(附名词:全文检索sphinx)

  1. SELECT uid,v_state FROM all_user WHERE USERNAME LIKE 'su_yue';    //下划线[_]匹配任意单个字符
  2. SELECT uid,v_state FROM all_user WHERE USERNAME LIKE 'su%yue';    //%匹配任意多个字符
  3. SELECT uid,v_state FROM all_user WHERE USERNAME NOT LIKE 'su%';        /t like取不包含的信息
复制代码

3、怎样猜测一个功能

mysql作为一个关系型数据库,面向的是普通的开发者,所以一切尽可能做到人性化。所以,如果你不知道某个功能是什么,那么,也许你可以猜得出来,因为,如果一个功能让别人无法猜出个大概,那么也许,他就是失败的设计。对于mysql,只要你英语水平稍微好一点点,就能很轻松的想到关系查询应该怎么写。所以,猜测的能力,在于你英语的水平,哈哈哈!!!

4、replace into 语法

replace into 是一个很粗暴的插入方式,不过在适当的场景使用也是很有必要的,比如一些需要随时覆盖式写入的数据,就应该使用replace, 但是对于一些自增型的表,则应尽量避免使用,因为这样会是对ID的一种浪费,也许没必要使用replace.

5、insert into on dumplicate key update 语法

这个写法相对来说就温柔多了,但是速度肯定是慢一点的,据说只有mysql才有这个特性哦,如果你不想在插入前去判断一下是否已存在该数据,也许这是一个不错的选择!

6、explain 语法

这是一个检查查询效果的有效方式,其实我本人很少使用这功能,但是,如果一个开发者经常使用这功能,那么,我相信,他本人肯定是个牛掰的人。通过这个命令,可以判断出你写的语句是否是优化的,如果不是,方向是什么。应该说,你用得多了,自己自然就知道结果了,还是多用用吧!

7、索引长度

myisam的索引长度最大为1000字节,innodb的索引长度最大为767字节!注意使用哦,超出范围,则超出预料!

8、库的复制

1)直接数据mysql自带的数据库备份恢复命令;

2)直接拷贝文件到目的服务器(注意进程占用问题);

3)使用工具进行同步;个人感觉第二种方式最简单!

9、分区

对于一些可能会很大的表,需要进行分区操作,如果有这方面的需求,需要在最开始就添加至少一个分区,否则后期将无法操作分区。(至少我是这么认为的)

10、慢查询

慢查询,这是一个对性能的监控问题,如果服务器表现太差,排查问题时,有这种慢查询的记录,排查起来将事半功倍!

11、binlog

binlog,一般都会用到这功能,对于数据恢复,数据操作记录等等有很必要功用!

12、其他应该要知道的视图、存储过程、事件...

视图、事件等,这些都是一些高级应用,我发现很多项目根本不存在这种应用,到少我遇到的项目都几乎不涉及或者涉及了也是别人随便做做!但是高级功能还是要了解的,不管有没有用!

13、可使用的工具

phpMyAdmin, 作为远程安全操作数据库的方式,还是很不错的,但是作为本地操作的话,实在有点笨拙;sqlyog, 界面虽古板,但是还是比较方便的;navicat, 比较专业化,不过你得适应他的各种表现形式;命令行,我想应该不会有人直接使用命令行进行操作吧,不过,命令行才是根本呢!

需要加深的东西很多,如果有时间能力,应该深入源码!


转自信息酷

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

MySQL常常被我们误会的地方

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

MySQL常常被我们误会的地方

MySQL作为数据库的一大主力军,到处存在于我们各种系统中,相信大家都不陌生!但是,你知道你能用不代表你知道细节,那我们就来盘点盘点其中一些我们平时不太注意的地方,一来为了有趣,二来为了不让自己踩坑。声明:要想知道细节,那就去阅读源码,我实
2022-05-14

【JAVA】我们常常谈到的方法是指什么?

个人主页:【😊个人主页】 系列专栏:【❤️初识JAVA】 文章目录 前言方法方法的分类方法的定义方法调用方法重载 前言 在之前的文章中我们总是会介绍到类中的各式各样的方法,也许在应用中我们对它已经有
2023-08-16

PHP最常遇到几个错误以及它们的解决方法

这篇文章主要讲解了“PHP最常遇到几个错误以及它们的解决方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“PHP最常遇到几个错误以及它们的解决方法”吧!错误一:Parse error: sy
2023-06-02

MySQL 中 SQL 优化常用的30 种方法,你会几种?

1、对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。 2、应尽量避免在 where 子句中使用!=或操作符,否则将引擎放弃使用索引而进行全表扫描。 3、应尽量避免在 where 子句中对字段进行 nu
MySQL 中 SQL 优化常用的30 种方法,你会几种?
2014-10-21

MySQL的错误处理与异常捕获方法是什么

MySQL的错误处理主要通过以下几种方法来实现:使用错误代码和消息:当MySQL执行出错时,会返回错误代码和错误消息,开发者可以根据错误代码和消息来进行错误处理。使用存储过程:开发者可以使用MySQL的存储过程来进行错误处理。在存储过程中可
MySQL的错误处理与异常捕获方法是什么
2024-04-30

如何通过PHP8的Throw Expression更方便地处理错误和异常?

如何通过PHP8的Throw Expression更方便地处理错误和异常?在软件开发过程中,异常处理和错误处理是非常重要的一部分。过去,PHP的异常处理语法相对繁琐,而在PHP8中引入了Throw Expression,为我们提供了一种更为
2023-10-22

MySQL视图在哪些地方可能会不一致,如何保证它们的一致性?

在可更新视图的情况下,我们很可能更新通过视图不可见的数据,因为我们创建的视图仅显示表的部分数据。这种更新使得视图不一致。我们在创建或修改视图时可以通过使用WITH CHECK OPTION来保证视图的一致性。虽然WITH CHECK OPT
2023-10-22

【MySQL】使用LOAD DATA INFILE命令加载数据文件到MySQL数据库的方法和常见错误及解决方法

文章目录 【MySQL】使用LOAD DATA INFILE命令加载数据文件到MySQL数据库的方法和常见错误及解决方法LOAD DATA INFILE的语法详细1.创建(选择)目标数据库和表2.将数据从 CSV 文件导入已创建的表
2023-08-17

编程热搜

目录