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

MYSQL中的COLLATE是什么?

这个值后面对应的utf8_unicode_ci是什么意思呢?面试的时候用这个题目考一考DBA,应该可以难倒一大部分人。 COLLATE是用来做什么的?...对于mysql中那些字符类型的列,如VARCHAR,CHAR,TEXT类型的列,都需要有一个COLLATE类型来告知mysql如何对该列进行排序和比较。...这是mysql的一个遗留问题,mysql中的utf8最多只能支持3bytes长度的字符编码,对于一些需要占据4bytes的文字,mysql的utf8就不支持了,要使用utf8mb4才行。...实例级别的COLLATE设置就是mysql配置文件或启动指令中的collation_connection系统变量。...不过,在系统设计中,我们还是要尽量避免让系统严重依赖中文字段的排序结果,在mysql的查询中也应该尽量避免使用中文做查询条件。

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

    MySQL中的pid与socket是什么?

    1.pid-file介绍 MySQL 中的 pid 文件记录的是当前 mysqld 进程的 pid ,pid 亦即 Process ID 。...可以通过 pid-file 参数来配置 pid 文件路径及文件名,如果未指定此变量,则 pid 文件默认名为 host_name.pid ,存放的路径默认放在 MySQL 的数据目录。...进程运行后会给 pid 文件加一个文件锁,只有获得 pid 文件写入权限的进程才能正常启动并把自身的 PID 写入该文件中,其它同一个程序的多余进程则自动退出。...在本地登录时,如果 my.cnf 配置文件中的 [client] 部分没有指定 socket 文件路径,mysql 默认会去寻找 /tmp/mysql.sock ,所以如果 mysqld 服务启动的时候...同样的,socket 文件目录权限要对 mysql 系统用户放开。 总结: 本篇文章介绍了 MySQL 中的 pid 及 socket 文件的具体配置及作用。

    2.5K20

    mysql中usage是什么权限? 原

    如题,我在phpmyadmin中发现自己新建的用户的权限是usage,这是什么权限啊? 但是我能够进行常规的插入,删除,建表操作啊?拜托,明确知道再回答好不好,这又不是贴吧,就别灌水了。...再说usage的字面意思也不是“用法”啊,而是“习惯,惯例”比较讲得通吧。 官方对usage的解释: USAGE “无权限”的同义词 当您想要创建一个没有权限的用户时,可以指定USAGE。...要看自己有哪些权限,执行SQL: SHOW GRANTS 在我的数据库下有一下几行: GRANT ALL PRIVILEGES ON `everalan`.* TO 'everalan'@'%' WITH...GRANT OPTION 可以看出,不知USAGE一种权限,所以,你才会正常的执行查删等操作 usage的字面意思就是用法,其实就是让你这个用户可以像个用户似的登录,但是除了能看到有那写数据库外,

    6.7K10

    mysql全文索引是什么_Mysql中的全文索引

    大家好,又见面了,我是你们的朋友全栈君。 以前只是简单听说过Mysql有全文索引,但是一直没有认真去了解过。最近在《MYSQL必知必会》中学习到这个知识点,做下记录。 首先,什么是全文索引?...那么如果是上面这条语句,Mysql会把所有note_text中含有rabbit的行记录选出来。...相当于 LIKE ‘%rabbit%’ ; 但是这里必须谈一谈,文章开头所说到的智能是什么意思,问什么会和LIKE不同?...等级越大代表越有可能是我们需要的记录, 然后Mysql会把高等级的行记录先显示出来,亦即把更可能是我们需要的搜索结果先显示出来。这就是智能的涵义。...③Mysql再次进行全文索引,并且 不仅使用原查询词语,而且加上步骤②选出的词。

    2.3K20

    mysql中的enum是什么类型_数据库枚举类型是什么

    枚举类型使用陷阱 超级不推荐在mysql中设置某一字段类型为enum,但是存的值为数字,比如‘0’,‘1’,‘2’; 解释1:你会混淆,因为enum可以通过角标取值,但它的角标是从1开始,对于不熟悉这个字段的人这里会出错...“空”(不是null) 解释3:enum类型对于php等弱语言类型的支持很差,弱语言类型打引号和不打引号的值可能是同一类型,但是对于mysql中enum类型的字段来说,那就不一定是一回事了 结论:总之,...不要拿mysql的enum类型取存一些数字;如果你一定要使用这个字段去存数字,请把这个字段定义为int,然后在java代码中使用枚举类做一个对于这个字段值范围的一个限定!...中枚举类型Color定义取值的顺序是RED、GREEN、BLUE,因此,当这三个取值持久化到数据库表时,取值分别是0、1、2; * 意思就是我们这里存往数据库的数据是0、1、2这样的数字,而不是...RED、GREEN、BLUE字符串, 但是Mysql数据库中定义的是RED、GREEN、BLUE,并没有其它值所以报错 解决:在entity中使用@Enumerated(EnumType.STRING)

    5.4K20

    MySQL 中InnoDB与MyISAM的区别是什么?

    专栏持续更新中:MySQL详解 前言 许多同学都把 MySQL 作为自己的数据库,但是可能用过最多的就是 SQL 语句,以及一些 ORM 的写法,而对底层的实现了解甚少,比如上述问题中,InnoDB...和 MyISAM 分别是什么,可能都不是非常清楚。...SHOW ENGINES; 三、存储引擎原理 首先针对可能面试会问到的问题「MyISAM 和 InnoDB 两种引擎所使用的索引的数据结构是什么」做一个回答: 都是 B+ 树,不过区别在于: MyISAM...这种索引的模式被称为非聚集索引。 InnoDB 中 B+ 树的数据结构中存储的都是实际的数据,这种索引有被称为聚集索引。 四、B 树和 B+ 树 那么什么是 B+ 树?...MEMORY的缺陷就是对表的大小有限制,太大的表无法缓存在内存中,其次是要确保表的数据可以恢复,数据库异常终止后表中的数据是可以恢复的。

    98410

    【问答】MySQL存储过程中的 ?? 和 是什么?

    在平时工作中,有时我们会编写存储过程。在存储过程中我们会在网上看到一些例子,在例子中会有类似 DELIMITER ??...我们在MySQL客户端写完SQL时会以分隔符;来作为一条完整的SQL语句的终止符,比如: 但是在存储过程中我们会在一个存储过程内写很多以;结束的语句,设置变量,循环,具体的多个SQL语句等都会以;结束,...那么就会出现MySQL客户端解析到第一个;就认为你写的这个语句已经写完了,它就发送这条语句给服务端执行这个SQL了。...原因就在于它(MySQL客户端)把下面这段SQL当成一条完整的语句交给服务器执行了。...时,MySQL客户端会一直解析到符号??才认为你这条语句结束了。 此时你已经成功的创建了一个存储过程了。然后你可以把分隔符重新改为默认的;,然后执行存储过程。

    3K10

    【说站】mysql中replace函数是什么

    mysql中replace函数是什么 说明 1、可以替换字符串中的内容,直接替换数据库中某字段中的特定字符串,不再需要自己写函数去替换。 是mysql里面处理字符串比较常用的函数。...2、用于将字符串str中所有的from_str替换为to_str,返回替换后的字符串。...实例 SELECT REPLACE('MySQL字符串函数', '字符串', '日期') AS str1,        REPLACE('MySQL字符串函数', '字符串', '') AS str2...; str1        |str2     | ------------+---------+ MySQL日期函数|MySQL函数| 以上就是mysql中replace函数的介绍,希望对大家有所帮助...更多mysql学习指路:MySQL 推荐操作系统:windows7系统、mysql5.8、DELL G3电脑 收藏 | 0点赞 | 0打赏

    1.3K20

    Mysql的LSN是什么?

    LSN的含义​LSN全称为 Log Sequence Number,即日志序列号。它是一个不断递增的数字,用来标识事务日志中的每个操作或事件。...数据页上的LSN表示该页的最新修改。检查点(Checkpoint)检查点将内存中的所有脏页刷新到磁盘,并更新检查点LSN。...这个LSN表示所有数据页的状态都一致,且在此LSN之前的所有日志记录都已经应用到数据页中,可以认为是已经完成了持久化。...崩溃恢复在崩溃恢复过程中,InnoDB从检查点LSN开始扫描redo log,并重做此LSN之后的所有日志记录。这样可以确保所有修改都被应用到数据页中,恢复数据库到崩溃前的一致状态。...通过LSN,InnoDB可以确定日志记录的顺序和位置,从而可以精确地进行日志恢复。崩溃恢复: 如果MySQL服务器崩溃,InnoDB使用LSN来确定从哪里开始重做(redo)操作。

    80410

    MySQL中数值类型中smallint、mediumint等区别是什么

    MySQL 支持多种类型,大致可以分为三类:数值、日期/时间和字符串(字符)类型 数值类型中又可以分为整型、浮点型,或者可以说为严格数值数据类型以及近似数值数据类型 分别为 tinyint(m)、smallint...m 是什么意思 比如经常用到的 int(11),这里是 11 是什么意思,只能存 11 位数吗?...当然不是 这个长度 11 并不代表允许存储的宽度,而是为了告诉 MySQL 数据库,我们这个字段的存储的数据的宽度为 M 位数, 当然如果你不是 M 位数(只要在该类型的存储范围之内)MySQL 也能正常存储...其他的数值类型中的 m 同理,int(1)和 int(11)中的 1 和 11 并不表示存储长度,只有字段指定 zerofill 时有用 `tel` int(11) unsigned zerofill...任何个人或团体,未经允许禁止转载本文:《MySQL中数值类型中smallint、mediumint等区别是什么》,谢谢合作!

    3.5K20
    领券