总结工作中经常用到mysql的基础知识

  本文主要给大家介绍工作中经常用到mysql的基础知识,文章内容都是笔者用心摘选和编辑的,具有一定的针对性、对大家的参考意义还是比较大的、下面跟笔者一起了解下工作中经常用到mysql的基础知识吧。 <李>

一张表,里面有ID自增主键,当插入了17条记录之后,删除了第15,16,17条记录,再把mysql重启,再插入一条记录,这条记录的ID是18还是15 ?
(1)如果表的类型是MyISAM,那么是18
因为MyISAM表会把自增主键的最大ID记录到数据文件里,重启mysql自增主键的最大ID也不会丢失
(2)如果表的类型是InnoDB,那么是15
InnoDB表只是把自增主键的最大ID记录到内存中,所以重启数据库或者是对表进行优化操作,都会导致最大的身份证丢失

,,,,(3)如果不重启的话两个引擎都是从18开始

,,,,(4)如果用截断两个引擎都是从1开始


2。字符串数据类型enum与设置

(1)枚举

单选字符串数据类型,适合存储表单界面中的“单选值”。

设定enum的时候,需要给定“固定的几个选项”;存储的时候就只存储其中的一个值。

设定enum的格式:

enum(“选1项“,“选2项“,“选第三项“,…),

实际上,枚举的选项都会对应一个数字,依次是1、2、3、4、5……,最多有65535个选项

使用的时候,可以使用选项的字符串格式,也可以使用对应的数字。

(2)设置

多选字符串数据类型,适合存储表单界面的“多选值”。

设定组的时候,同样需要给定“固定的几个选项”;存储的时候,可以存储其中的若干个值。

设定组的格式:

设置(“选1项“,“选2项“,“选第三项“,…)

同样的,设置的每个选项值也对应一个数字,依次是1、2、4、8、16……,最多有64个选项

使用的时候,可以使用集选项的字符串本身(多个选项用逗号分隔),也可以使用多个选项的数字之和(比如:1 + 2 + 4=7)

3。mysql的日志

错误日志:记录出错信息,也记录一些警告信息或者正确的信息。
查询日志:记录所有对数据库请求的信息,不论这些请求是否得到了正确的执行。
慢查询日志:设置一个阈值,将运行时间超过该值的所有SQL语句都记录到慢查询的日志文件中。
二进制日志:记录对数据库执行更改的所有操作。

重做日志:记录已提交的修改后的数据,用于数据库突然断电,重启后可以通过redolog来恢复断电前的数据

撤销日志:记录事务修改前的数据,用于事务回退,可以通过undolog恢复事务之前的数据

4, mysql中myisam与innodb的区别

1祝辞.InnoDB支持事物,而myisam不支持事物

2祝辞.InnoDB支持行级锁,而myisam支持表级锁

3祝辞。InnoDB支持MVCC,而MyISAM不支持

4祝辞.InnoDB支持外键,而MyISAM不支持

5祝辞.InnoDB不支持全文索引,而MyISAM支持。


(2), InnoDB引擎的4大特性

插入缓冲(插入缓冲),二次写(双写),自适应哈希索引(你好),预读(读之前)

(3), 2者selectcount(*)哪个更快,为什么

MyISAM更快,因为MyISAM内部维护了一个计数器,可以直接调取。


5,多对多关系的理解

比如有两个表A, B,多对多是指一个表中的某一条数据有可能对应B表中的多条数据,而且还有一些条数据可能对应B表中的一条数据。(不是指一个表中的多条数据对应着B表中的多条数据)

所以这里需要个中间表C, C中至少有两列,每列上都创建外键并分别引用一个公元前和表中的这两列为联合主键,防止重复。

6. char (n)和varchar (n)这里的n是n个字符,不是字节(mysql5以上)

7.整数n (n)是显示的位数,不是长度,不管n为多少,int的长度只能是4个字节

看完以上关于工作中经常用到mysql的基础知识,很多读者朋友肯定多少有一定的了解,如需获取更多的行业知识信息,可以持续关注我们的行业资讯栏目的。

  

总结工作中经常用到mysql的基础知识