MySQL知识积累

一、MySQL中myisam与innodb的区别

MyISAM和InnoDB都是MySQL的存储引擎,服务器通过API和底层存储引擎进行通信,存储引擎API封装了很多的底层函数,使得不对具体的存储引擎相互区分,目前用的最多的就是MyISAM和InnoDB。但两者也有很多不同。

  1. MyISAM不支持事务,InnoDB支持事务。InnoDB是默认的事务性引擎;这也注定了对于写操作比较多,或者表比较大的情况,最好不用MyISAM。
  2. MyISAM支持表锁,InnoDB支持行锁。这也注定了在并发性能上,MyISAM的表锁的特性是最大的瓶颈;
  3. MyISAM不支持外键,InnoDB支持外键;
  4. MyISAM支持全文索引,InnoDB不支持全文索引;
  5. InnoDB支持MVCC,MyISAM不支持。

二、mysqldump

mysqldump用来备份数据库还是比较有用的,这里说一下看到的题:

  1、要把insert的每一行都单行显示。

   只需加上--skip-extened-insert,就可以实现上述功能:

mysqldump -uroot -p app_dailyblog blog_category --skip-extended-insert >cate.sql

 2、从mysqldump中恢复某一个库:

mysql -uroot -p blog_category --one-database < blog.sql

三、锁

锁可分为行级锁和表锁,InnoDB都支持,那InnoDB是如何实现行级锁的呢?

锁这方面还是比较复杂的,有很多东西要看。我只知道 InnoDB是基于索引来完成行锁例 。

四、MySQL日志类别

错误日志、查询日志、二进制日志、慢查询日志。

  1. 错误日志;记录启动,停止mysqld出现的错误;
  2. 查询日志;记录建立的客户端连接以及所有语句,包括错误的;
  3. 二进制文件,记录所有更改数据的Sql语句,用于主从复制;
  4. 慢查询,记录所有查询时间超过long_query_time的查询;

五、模糊匹配

  • 如果REGEXP模式与被测试值的任何地方匹配,模式就匹配(这不同于LIKE模式匹配,只有与整个值匹配,模式才匹配)

 

1. 关键字 regexp等于rlike

http://www.sqlines.com/mysql/regexp_rlike MySQL - REGEXP, RLIKE - Guide, Examples and Alternatives

这两条相同:

select*fromuserswherename regexp'傻'

select*fromuserswhere name rlike '傻'

 

2. like 和rlike区别

这两条返回不一样,like匹配整个字串,rlike是匹配部分。

select*fromuserswhere name rlike '傻'select*fromuserswherenamelike '傻'

rlike的返回结果是这样

 

六、MySQL的drop,delete,truncate

drop>delete>truncate
 
 
程度从强到弱
1、drop  table tb 
      drop将表格直接删除;
2、truncate (table) tb
      删除表中的所有数据,不能与where一起使用
3、delete from tb (where)
      删除表中的数据(可制定某一行)

区别:truncate和delete的区别
         1、事务:truncate是不可以rollback的,但是delete是可以rollback的;
              原因:truncate删除整表数据(ddl语句,隐式提交),delete是一行一行的删除,可以rollback
         2、效果:truncate删除后将重新水平线和索引(id从零开始) ,delete不会删除索引    
         3、 truncate 不能触发任何Delete触发器。
         4、delete 删除可以返回行数
 
七、MySQL的大小写
1、在Linux平台上,MySQL对数据库和表名的大小写是敏感的,而Windows是不敏感的。在Linux下,我们可以对low_er_case_table_names进行修改, 为0时(Linux默认),大小写敏感,创建和查询都是区分大小写;为1时,创建表以小写,查询表也是以小写;为2时,创建表区分大小写,查询表以小写
2、列名与列的别名在所有系统中都不区分大小写;
 
 
--------EOF---------
本文微信分享/扫码阅读