网站建设编辑器,网站开发流程步骤 口袋,艺术设计公司名字,百度推广一个关键词多少钱存储引擎 存储引擎就是存储数据、建立索引、更新/查询数据等技术的实现方式。存储引擎是基于表而不是基于库的#xff0c;所以存储引擎也可以被称为表引擎。 默认存储引擎是InnoDB。
InnoDB
在 MySQL 5.5 之后#xff0c;InnoDB 是默认的 MySQL 引擎。 1.支持事务 2.行级锁…存储引擎 存储引擎就是存储数据、建立索引、更新/查询数据等技术的实现方式。存储引擎是基于表而不是基于库的所以存储引擎也可以被称为表引擎。 默认存储引擎是InnoDB。
InnoDB
在 MySQL 5.5 之后InnoDB 是默认的 MySQL 引擎。 1.支持事务 2.行级锁提高并发访问性能 3.支持外键约束保证数据的完整性和正确性
文件xxx.ibd: xxx代表表名InnoDB 引擎的每张表都会对应这样一个表空间文件存储该表的表结构 frm、sdi、数据和索引。 参数innodb_file_per_table决定多张表共享一个表空间还是每张表对应一个表空间
MyISAM
MyISAM 是 MySQL 早期的默认存储引擎。 特点 不支持事务不支持外键 支持表锁不支持行锁 访问速度快 文件 xxx.sdi: 存储表结构信息 xxx.MYD: 存储数据 xxx.MYI: 存储索引
Memory
Memory 引擎的表数据是存储在内存中的受硬件问题、断电问题的影响只能将这些表作为临时表或 缓存使用。 特点 存放在内存中速度快 hash索引默认 文件 xxx.sdi: 存储表结构信息
事物隔离级别 查看事务隔离级别 SELECT TRANSACTION_ISOLATION;
并发事务 四大特性ACID
原子性(Atomicity)事务是不可分割的最小操作但愿要么全部成功要么全部失败 一致性(Consistency)事务完成时必须使所有数据都保持一致状态 隔离性(Isolation)数据库系统提供的隔离机制保证事务在不受外部并发操作影响的独立环境下 运行 持久性(Durability)事务一旦提交或回滚它对数据库中的数据的改变就是永久的
索引
它是帮助MySQL高效获取数据 的数据结构主要是用来提高数据检索的效率降低数据库的IO成本同时 通过索引列对数据进行排序降低数据排序的成本也能降低了CPU的消耗
索引的底层数据结构
MySQL的默认的存储引擎InnoDB采用的B树的数据结构来存储索 引选择B树的主要的原因是第一阶数更多路径更短第二个磁盘读写 代价B树更低非叶子节点只存储指针叶子阶段存储数据第三是B树便 于扫库和区间查询叶子节点是一个双向链表 B树和B树的区别是
第一在B树中非叶子节点和叶子节点都会存放数据而B树的 所有的数据都会出现在叶子节点在查询的时候B树查找效率更加稳定 第二在进行范围查询的时候B树效率更高因为B树都在叶子节点存 储并且叶子节点是一个双向链表
什么是聚簇索引什么是非聚簇索引
1.聚簇索引主要是指数据与索引放到一块 B树的叶子节点保存了整 行数据有且只有一个一般情况下主键在作为聚簇索引的 2.非聚簇索引值的是数据与索引分开存储 B树的叶子节点保存对应的主键 可以有多个一般我们自己定义的索引都是非聚簇索引
知道什么是回表查询?
回表的 意思就是通过二级索引找到对应的主键值然后再通过主键值找到聚集索引 中所对应的整行数据这个过程就是回表
覆盖索引是
覆盖索引是指select查询语句使用了索引在返回的列必须在索引中全部 能够找到如果我们使用id查询它会直接走聚集索引查询一次索引扫 描直接返回数据性能高。 如果按照二级索引查询数据的时候返回的列中没有创建索引有可能会触 发回表查询尽量避免使用select *尽量在返回的列中都包含添加索引的字 段
MYSQL超大分页怎么处理 ?
超大分页一般都是在数据量比较大时我们使用了limit分页查 询并且需要对数据进行排序这个时候效率就很低我们可以采用覆盖索 引和子查询来解决 先分页查询数据的id字段确定了id之后再用子查询来过滤只查询这个 id列表中的数据就可以了 因为查询id的时候走的覆盖索引所以效率可以提升很多
索引失效
1.没有遵循最左匹配法则 2.模糊查询 3.如果%号在前面也会导致索引失效。 4.如果在添加索引的字段上进行了运算操作或者类型转换也都会导致索引失效
日志
undo log和redo log 其中redo log日志记录的是数据页的物理变化服务宕机可用来同步数据 而undo log 不同它主要记录的是逻辑日志当事务回滚时通过逆操作恢复原来的数据 redo log保证了事务的持久性undo log保证了事务的原子性和一致性