MySQl
文章平均质量分 89
Psycho_MrZhang
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
MySQL中in和exists的使用场景
在MySQL中,IN和EXISTS是用于子查询的两种常见方法,它们在不同的场景下有不同的表现和适用性。下面我将详细介绍这两种方法的使用场景、优劣,并通过实验来说明问题。原创 2024-12-18 10:21:39 · 558 阅读 · 0 评论 -
MySQL JOIN算法实现和选择
它的基本思想是使用一个外层循环遍历第一个关系中的每一行,然后在内层循环中遍历第二个关系中的每一行,以检查它们是否满足连接条件。MySQL的查询优化器会根据表的统计信息、索引的存在情况、查询的具体条件等因素来选择最合适的JOIN算法。在MySQL中,使用索引进行JOIN操作的底层实现主要涉及几种不同的算法,具体取决于查询优化器的选择和表的结构。具体的实现方式取决于查询优化器的选择和表的结构。但是,通过使用数据块的方式,减少了对外层表的 I/O 操作次数,提升了查询效率,特别是在处理大数据集时效果更明显。原创 2024-12-18 09:50:48 · 656 阅读 · 0 评论 -
SQL索引最佳实践原则
没走索引原因:mysql内部优化器会根据检索比例、表大小等多个因素整体评估是否使用索引。比如这个例子,可能是由于单次数据量查询过大导致优化器最终选择不走索引。< 小于、 > 大于、 = 这些,mysql内部优化器会根据检索比例、表大小等多个因素整体评估是否使用索引。如果索引了多列,要遵守最左前缀法则。指的是查询从索引的最左前列开始并且不跳过索引中的列。问题:解决like’%字符串%'索引不被使用的方法?优化方法:可以将大的范围拆分成多个小范围。是否使用索引,详见范围查询优化。原创 2024-12-07 22:28:41 · 924 阅读 · 0 评论 -
Explain 详解与索引实践
Explain是查询SQL的执行计划。原创 2024-12-07 21:36:06 · 1075 阅读 · 0 评论 -
MySQl索引原理
索引是帮助MySQL高效获取数据的排好序的数据结构。原创 2024-12-03 23:23:19 · 748 阅读 · 0 评论 -
MySQL的架构和历史
延迟更新索引键: 指定了DELAY_KEY_WRITE,在修复完成之后,不会立即修改索引数据写入磁盘,而是进入到内存的缓冲区,当清理缓冲区或者关闭表才会将对应的索引写入磁盘,可以提高性能,但是如果主机崩溃需要进行修复。在事务中修改,即使没有提交,对于其他事物也都是可见的,事务可以读取未提交的数据,这个级别会导致很多问题 ,性能也不会比其他好很多,很少用。最高隔离级别,强制事务串行执行,避免了幻读,会在读取的每一行数据都加锁,这样会导致性能问题,但是在考虑数据一致性的情况下可以使用。原创 2024-12-03 22:11:51 · 606 阅读 · 0 评论 -
MySQL高性能索引
聚簇索引就是在同一个结果中保存了B-Tree索引和数据行,当表有聚簇索引的时候,数据行实际存放在索引的叶子页,成为’聚簇’,表示数据行和相邻的键值紧凑的存储在一起,因为存储引擎实现的索引,并不是所有的存储引擎都支持聚簇,在InnoDB引擎中主键默认就是聚簇索引。InnoDB,有一个特殊功能,‘自适应哈希索引’,当InnoDB发现一些索引被使用非常频繁,会在内存中基于B-Tree索引加上哈希索引,这样就让就让B-Tree索引具有哈希索引的一些优点。原创 2024-12-03 22:12:28 · 805 阅读 · 0 评论 -
MySQL服务器性能剖析
聚簇索引就是在同一个结果中保存了B-Tree索引和数据行,当表有聚簇索引的时候,数据行实际存放在索引的叶子页,成为’聚簇’,表示数据行和相邻的键值紧凑的存储在一起,因为存储引擎实现的索引,并不是所有的存储引擎都支持聚簇,在InnoDB引擎中主键默认就是聚簇索引。InnoDB,有一个特殊功能,‘自适应哈希索引’,当InnoDB发现一些索引被使用非常频繁,会在内存中基于B-Tree索引加上哈希索引,这样就让就让B-Tree索引具有哈希索引的一些优点。原创 2024-12-03 22:13:04 · 1040 阅读 · 0 评论 -
MySQL服务器配置优化
我们通常情况下可以使用默认配置, 但是当遇到一些性能问题或者其他问题的时候才需要修改MySQL的配置, 不要做不必要的修改可能会导致意外的bug。原创 2024-12-03 22:15:40 · 699 阅读 · 0 评论 -
MySQL查询性能优化
用户自定义变量是一个用来存储内容的临时容器,连接MySQL的整个过程都存在自定义变量的属性和限制无法使用查询缓存不能使用常量或者标识符的地方使用自定义变量,例如表名,LIMIT子句用户自定义变量在生命周期在一个连接中有效,所以不能用它们做连接通信如果使用连接池或者持久化连接,自定义变量可能看起来和毫无关系的代码交互不能显式的自定义变量类型,最好初始化,但是在赋值的时候会改变一些情况下变量会被优化器优化掉赋值的时间和顺序不固定赋值符号 “:=” 优先级很低。原创 2024-12-03 22:24:51 · 1163 阅读 · 0 评论 -
MySQL分区管理
注意,不能添加已有的值,会导致错误譬如在(6, 12, 18)中添加(7, 12, 21)会导致报错, 可以通过备份数据 重组表,但是非常麻烦且不利于生产环境。这与删除存储在分区中的所有记录,然后重新插入它们具有相同的效果。会导致错误, 但是可以通过将第一个分区重新组织为两个分区来解决此问题, 这不会导致数据丢失。您可以使用CHECK TABLE与用于非分区表的方式非常相似的方式来检查分区是否存在错误。使用ALL使语句作用于表中的所有分区。删除分区,也会删除分区中存储的所有数据。读取存储分区的秘钥分布。原创 2024-12-03 22:34:23 · 1009 阅读 · 0 评论 -
MySQL分区类型
支持分区表的存储引擎InnoDB和NDB创建分区表和普通表一样不指定就会使用默认存储引擎MySQL创建表分区必须具有每一个唯一键的一部分,所以以下SQL不能创建一个分区表, 因为pk和uk没有共同的列CREATE TABLE tnp (原创 2024-12-03 22:34:53 · 629 阅读 · 0 评论 -
MySQl高级特性
分区表: 分区表是一种粗粒度, 简易的索引策略, 适用于大量数据过滤, 最适合场景在没有合适索引对几个分区进行全表扫描, 或者只有一个分区和索引是热点, 而且这个分区和索引能够在内存中, 建议分区不要操作150个, 分区表对于单条查询没有优势视图: 对好几个表的复杂查询, 使用视图会简化问题, 当视图使用临时表无法将WHERE条件下推到各个具体的表, 也不能使用任何索引, 需要特别注意查询的性能, 如果为了便利, 视图还是很合适的。原创 2024-12-03 22:35:25 · 1240 阅读 · 0 评论 -
MySQL主从架构配置
官方地址: https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.32-linux-glibc2.12-x86_64.tar。 **注意: 前后两次配置方法是一样的只是放到了不同文件下 **在 log 文件下创建 mysqld.log 文件。原创 2024-12-03 22:36:24 · 348 阅读 · 0 评论
分享