华体会登录口:MySQL夺命10问你能坚持到第几问?

   刊发时间:2022-07-09 04:09:53   来源:华体会网站链接 作者:华体会电竞官网入口

  第二范式:在第一范式的基础上,非主键列完全依赖于主键,而不能是依赖于主键的一部分。

  第三范式:在第二范式的基础上,非主键列只依赖于主键,不依赖于其他非主键。

  在设计数据库结构的时候,要尽量遵守三范式,如果不遵守,必须有足够的理由。

  MySQL服务器通过权限表来控制用户对数据库的访问,权限表存放在mysql数据库里,由mysql_install_db脚本初始化。

  user权限表:记录允许连接到服务器的用户帐号信息,里面的权限是全局级的。

  host权限表:配合db权限表对给定主机上的数据库级操作权限作更细致的控制。这个权限表不受GRANT和REVOKE语句的影响。

  主要为以上操作,即对数据进行操作的,对应上面所说的查询操作DQL与DML共同构建了多数初级程序员常用的增删改查操作。查询是较为特殊的一种,被划分到DQL中。

  主要为以上操作,即对数据库安全性完整性等有操作的,可以简单的理解为权限控制等。

  死锁是指两个或多个事务在同一资源上相互占用,并请求锁定对方的资源,从而导致恶性循环的现象。

  如果不同程序会并发存取多个表,尽量约定以相同的顺序访问表,可以大大降低死锁机会;

  对于非常容易产生死锁的业务部分,可以尝试使用升级锁定颗粒度,通过表级锁定来减少死锁产生的概率;

  脏读(Drity Read):某个事务已更新一份数据,另一个事务在此时读取了同一份数据,由于某些原因,前一个RollBack了操作,则后一个事务所读取的数据就会是不正确的。

  不可重复读(Non-repeatable read):在一个事务的两次查询之中数据不一致,这可能是两次查询过程中间插入了一个事务更新了原有的数据。

  幻读(Phantom Read):在一个事务的两次查询中,数据笔数不一致,例如有一个事务查询了几列(Row)数据,而另一个事务却在此时插入了新的几列数据,先前的事务在接下来的查询中,就会发现有几列数据是它先前所没有的。

  当cpu飙升到100%时,先用操作系统命令top命令观察是不是mysqld占用导致的。

  如果是mysqld造成的,show processlist,看看里面跑的session情况,是不是有消耗资源的sql在运行。找出消耗高的sql,看看执行计划是否准确,index是否缺失,或者实在是数据量太大造成。

  一般来说,肯定要kill掉这些线程(同时观察cpu使用率是否下降),等进行相应的调整(比如说加索引、改sql、改内存参数)之后,再重新跑这些SQL。

  也有可能是每个sql消耗资源并不多,但是突然之间,有大量的session连进来导致cpu飙升,这种情况就需要跟应用一起来分析为何连接数会激增,再做出相应的调整,比如说限制连接数等。

  主数据库出现问题,可以切换到从数据库。可以进行数据库层面的读写分离。可以在从数据库上进行日常备份。

  ·逻辑备份:分表比较容易。mysqldump备份数据时是将所有sql语句整合在同一个文件中;mydumper备份数据时是将SQL语句按照表拆分成单个的sql文件, 每个sql文件对应一个完整的表。

  视库的大小来定。一般来说100G内的库,可以考虑使用mysqldump来做,因为mysqldump更加轻巧灵活,备份时间选在业务低峰期,可以每天进行都进行全量备份(mysqldump备份出来的文件比较小,压缩之后更小)。

  “捷码”低代码平台是杭州远眺科技有限公司自主研发的一款全技术链赋能的通用型低代码开发平台,具有强大的数据开发能力,可直接连接MySQL、Postgre SQL、ORACLE、SQL Server等主流数据库。对是国产数据库,也可以通过数据交换的增值模块,交换成MySQL进行连接,助力开发团队快速、低成本地构建数字化软件应用。

  添加捷码微信ytgemcoder,回复“MySQL必知必会”,即可领取《MySQL必知必会》电子书1份。还有更多电子书,等你来领~返回搜狐,查看更多

 

版权所有: 华体会登录口网站链接_华体会电竞官网入口 

京ICP备05050114号      400-160-1670