总结工作中经常用到的mysql基础知识-创新互联
一张表,里面有ID自增主键,当insert了17条记录之后,删除了第15,16,17条记录,再把Mysql重启,再insert一条记录,这条记录的ID是18还是15 ?
创新互联是一家专业提供霞浦企业网站建设,专注与成都网站建设、做网站、成都h5网站建设、小程序制作等业务。10年已为霞浦众多企业、政府机构等服务。创新互联专业网站设计公司优惠进行中。
(1)如果表的类型是MyISAM,那么是18
因为MyISAM表会把自增主键的大ID记录到数据文件里,重启MySQL自增主键的大ID也不会丢失
(2)如果表的类型是InnoDB,那么是15
InnoDB表只是把自增主键的大ID记录到内存中,所以重启数据库或者是对表进行OPTIMIZE操作,都会导致大ID丢失
(3) 如果不重启的话 两个引擎都是从18开始
(4)如果用truncate 两个引擎都是从1开始
2. 字符串数据类型enum与set
(1)enum
单选字符串数据类型,适合存储表单界面中的“单选值”。
设定enum的时候,需要给定“固定的几个选项”;存储的时候就只存储其中的一个值。
设定enum的格式:
enum("选项1","选项2","选项3",...);
实际上,enum的选项都会对应一个数字,依次是1,2,3,4,5...,最多有65535个选项
使用的时候,可以使用选项的字符串格式,也可以使用对应的数字。
(2)set
多选字符串数据类型,适合存储表单界面的“多选值”。
设定set的时候,同样需要给定“固定的几个选项”;存储的时候,可以存储其中的若干个值。
设定set的格式:
set("选项1","选项2","选项3",...)
同样的,set的每个选项值也对应一个数字,依次是1,2,4,8,16...,最多有64个选项
使用的时候,可以使用set选项的字符串本身(多个选项用逗号分隔),也可以使用多个选项的数字之和(比如:1+2+4=7)
3.mysql log
错误日志:记录出错信息,也记录一些警告信息或者正确的信息。
查询日志:记录所有对数据库请求的信息,不论这些请求是否得到了正确的执行。
慢查询日志:设置一个阈值,将运行时间超过该值的所有SQL语句都记录到慢查询的日志文件中。
二进制日志:记录对数据库执行更改的所有操作。
redo日志:记录已提交的修改后的数据,用于数据库突然断电,重启后可以通过redolog来恢复断电前的数据
undo日志:记录事务修改前的数据,用于事务回退,可以通过undolog恢复事务之前的数据
4、MySQL中myisam与innodb的区别
1>.InnoDB支持事物,而MyISAM不支持事物
2>.InnoDB支持行级锁,而MyISAM支持表级锁
3>.InnoDB支持MVCC, 而MyISAM不支持
4>.InnoDB支持外键,而MyISAM不支持
5>.InnoDB不支持全文索引,而MyISAM支持。
(2)、innodb引擎的4大特性
插入缓冲(insert buffer),二次写(double write),自适应哈希索引(ahi),预读(read ahead)
(3)、2者selectcount(*)哪个更快,为什么
myisam更快,因为myisam内部维护了一个计数器,可以直接调取。
5、多对多关系的理解
比如有两个表A、B, 多对多是指A表中的某一条数据有可能对应B表中的多条数据,而且还有一些条数据可能对应B表中的一条数据。(不是指A表中的多条数据对应着B表中的多条数据)
所以这里需要个中间表C,C中至少有两列,每列上都创建外键并分别引用A和B。C表中的这两列为联合主键,防止重复。
6.char(n)和varchar(n)这里的n是n个字符,不是字节(mysql5以上)
7.int(n) n是显示的位数,不是长度,不管n为多少,int的长度只能是4个字节
看完以上关于工作中经常用到的mysql基础知识,很多读者朋友肯定多少有一定的了解,如需获取更多的行业知识信息 ,可以持续关注我们的行业资讯栏目的。
另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
文章题目:总结工作中经常用到的mysql基础知识-创新互联
网页网址:http://hbruida.cn/article/doigcg.html