合集-数据库
摘要:优势总结 只有数据库引擎为innodb且事务的隔离级别repeatable——read (可重复读)的时候 才会使用mvcc来实现多版本控制 事务中的可重复读可以有效的避免幻读问题 innodb从硬盘上读取数据的时候,会读取一整页的数据,然后加载到内容中,在内存中创建hash索引,从而提高读操作的效
阅读全文
摘要:这里是早起整理的myisam优势,因为当时刚毕业那会web1.0时代还没过时,很多的门户网站实际上就只是内容展示的时候,或者发布文章公告的场景。所以对于这样的读多写少的场景,大多数使用的还是myisam引擎。那时候用的都是5.X,2017年为了解决微信用户昵称存在特殊字符,才开始使用utf8mb4编
阅读全文
摘要:一定要有主键 一般使用的innodb引擎中会根据主健创建聚簇索引,这种方式会使得数据排列的更连续,减少随机IO 关于数据长度 考虑数据范围,够用的前提下,数据长度是越简单越好,数据类型是越小越好。 尽量避免使用TEXT/BLOB类型 data page 默认是16kb,每行数据长度超过8kb就会出现
阅读全文
摘要:为什么要有索引 因为加速查询,快呀!!!这是我回答面试官的第一句话,哈哈。 首先数据是以文件的形式存放在磁盘上面的,每一行数据都有它的磁盘地址。如果 没有索引的话,要从 500 万行数据里面检索一条数据,只能依次遍历这张表的全部数据,直到找到这条数据。 但是有了索引之后,只需要在索引里面去检索这条数
阅读全文
摘要:整体分层 连接层 服务层 存储引擎层 连接层 客户端要连接到服务器 3306 端口,必须要跟服务端建立连接,那么 管理所有的连接,验证客户端的身份和权限,这些功能就在连接层完成。 服务层 连接层会把 SQL 语句交给服务层,这里面又包含一系列的流程。 比如查询缓存的判断、根据 SQL 调用相应的接口
阅读全文
摘要:印象深刻的是刚进入一家公司,给了一个excel,里面的内容是线上慢查询的sql。因为sql太长过于复杂,然后就开启了顺着sql梳理业务的模式。 这里只是单纯的优化sql,但出现系统慢的情况,IO优化应该按照以下思路进行。 优化思路 每个人理解的性能优化都不一样,对于数据库的性能优化,我理解的就是响应
阅读全文
摘要:在做一件什么事情: 对新用户创建一个账号。如果用户账户已经存在,则对该账户的余额进行增减update操作。如果用户账户不存在,创建一个新的账户。并对用户账户明细表进行记录。 对要插入的数据和系统中已经存在的数据取交集,然后与要插入的数据取补给,所得数据就是要插入系统中的新的用户数据。 遇到了什么问题
阅读全文