mysql深度分页问题
摘要:深度分页的产生: 当一个有类似语句 select * from t1 limit startIndex,pageSize,如果这个startIndex只非常大即要检索50条数据需要偏移一个较大的偏移量,极大的消耗性能。 优化方式: 1、业务层面:在前端展示分页选择器,只能逐页翻,增加业务操作的工作量
阅读全文
SQL之执行计划详解
摘要:ID列: 执行步骤的编号,编号越大越先执行,编号相同从上到下执行。 SELECT_TYPE列: SIMPLE:表示不需要union操作或不包含子查询的select语句,有连接查询时外层的查询寻为simple,且只有一个。 PRIMARY:表示需要union操作或包含子查询的select语句,位于最外
阅读全文
事务相关问题
摘要:事务隔离从低到高的种类: 1、读未提交 2、读已提交(oracle默认的事务隔离级别) 3、可重复读(mysql默认的事务隔离级别) 4、串行化(可以解决所有事务并发问题,但效率比较低,不适合并发比较高的场景) 事务并发访问引起的问题及如何避免: 更新丢失:数据库层面已经处理了该问题 脏读:读已提交
阅读全文
Mysql的InnoDB和MyISAM的锁模块
摘要:两种引擎关于锁方面的区别: 1、MyISAM默认是表级锁不支持行集锁。 2、InnoDB默认用的是行级锁也支持表级锁。 MyISAM总结:上了共享锁之后依然支持上共享锁,不支持上排他锁。先上排他锁,读或者写都是不允许的,这种特性也同样适用InnoDB引擎。 InnoDB:在sql没有用到索引的时候用
阅读全文
索引相关问题
摘要:密集索引和稀疏索引的区别 1、密集索引的每个搜索码值都对应一个索引值 2、稀疏索引只为索引码的某些键建立索引项 主流mysql数据库引擎对这两索引的选择: InnoDB: 1、如果一个主键被定义了,则改键作为密集索引。 2、如果没有主键被定义,那么该表的唯一非空索引则作为密集索引。 3、若不满足以上
阅读全文
索引之B-TREE定义及约束
摘要:B-tree的特点: 1、节点至少包括两个孩子 2、树中每个节点最多含有m个孩子 m>=2 3、除根结点及叶子节点外每个节点最多含有ceil(m/2)个孩子 4、所有的叶子节点都位于同一层 假设每个非终端节点中包含n个关键字信息,其中 a、Ki(i = 1~n)为关键字,且关键字按顺序升序排排序,即
阅读全文
SQL优化
摘要:优化思路: 1、优化更需要优化的SQL:优先优化低消耗高并发的SQL,因为低消耗高并发远比高消耗低并发影响要大。 2、定位优化对象的性能瓶颈:IO,CPU,网络带宽。 3、明确优化的目标:以良好的户体验为目的。 4、从explain执行计划入手。 5、小结果集驱动大结果集。 6、尽可能在索引当中完成
阅读全文
mysql下载安装及常见问题
摘要:1、下载MySql 官网下载地址:https://dev.mysql.com/downloads/mysql/ 2、安装 如果下载的是zip的,直接解压目录即可,我的解压目录时:C:\mysql\mysql-5.7.25-winx64,打开解压后的MySql文件在根目录下创建my.ini (mysq
阅读全文