摘要: 很多数据库产品都能够缓存査询的执行计划,对于相同类型的SQL就可以跳过SQL解析和执行计划生成阶段。MySQL在某些场景下也可以实现,但是MySQL还有另一种不同的缓存类型:缓存完整的SELECT査询结果,也就是“査询缓存”。本节将详细介绍这类缓存。 MySQL査询缓存保存査询返回的完整结果。当査询 阅读全文
posted @ 2021-11-13 22:42 小家电维修 阅读(195) 评论(0) 推荐(0) 编辑
摘要: 存储引擎的事务特性能够保证在存储引擎级别实现ACID(参考前面介绍的“事务”),而分布式事务则让存储引擎级别的ACID可以扩展到数据库层面,甚至可以扩展到多个数据库之间——这需要通过两阶段提交实现。MySQL5.0和更新版本的数据库已经开始支持XA事务了。 XA事务中需要有一个事务协调器来保证所有的 阅读全文
posted @ 2021-11-13 22:18 小家电维修 阅读(517) 评论(0) 推荐(0) 编辑
摘要: 通过数值比较、范围过滤等就可以完成绝大多数我们需要的査询了。但是,如果你希望通过关键字的匹配来进行查询过滤,那么就需要基于相似度的查询,而不是原来的精确数值比较。全文索引就是为这种场景设计的。 全文索引有着自己独特的语法。没有索引也可以工作,如果有索引效率会更高。用于全文搜索的索引有着独特的结构,帮 阅读全文
posted @ 2021-11-13 22:03 小家电维修 阅读(460) 评论(0) 推荐(0) 编辑
摘要: 字符集是指一种从二进制编码到某类字符符号的映射,可以参考如何使用一个字节来表示英文字母。“校对”是指一组用于某个字符集的排序规则。MySQL4.1和之后的版本中,每一类编码字符都有其对应的字符集和校对规则。MySQL对各种字符集的支持非常完善,但是这也带来了一定的复杂性,某些场景下甚至会有一定的性能 阅读全文
posted @ 2021-11-13 21:40 小家电维修 阅读(103) 评论(0) 推荐(0) 编辑
摘要: 除了UDF,MySQL还支持各种各样的插件。这些插件可以在MySQL中新增启动选项和状态值,还可以新增INF0RMATI0N_SCHEMA表,或者在MySQL的后台执行任务,等等。 在MySQL5.1和更新的版本中,MySQL新增了很多的插件接口,使得你无须直接修改MySQL的源代码就可以大大扩展它 阅读全文
posted @ 2021-11-13 21:21 小家电维修 阅读(230) 评论(0) 推荐(0) 编辑
摘要: 从很早开始,MySQL就支持用户自定义函数(UDF)。存储过程只能使用SQL来编写,而UDF没有这个限制,你可以使用支持C语言调用约定的任何编程语言来实现。 UDF必须事先编译好并动态链接到服务器上,这种平台相关性使得UDF在很多方面都很强大。UDF速度非常快,而且可以访问大量操作系统的功能,还可以 阅读全文
posted @ 2021-11-13 18:41 小家电维修 阅读(132) 评论(0) 推荐(0) 编辑
摘要: 从MySQL 4.1版本开始,就支持服务器端的绑定变量(prepared statement),这大大提高了客户端和服务器端数据传输的效率。你若使用一个支持新协议的客户端,如MySQL C API,就可以使用绑定变量功能了。另外,Java和.NET的也都可以使用各自的客户端Connector/J和C 阅读全文
posted @ 2021-11-13 18:15 小家电维修 阅读(162) 评论(0) 推荐(0) 编辑
摘要: MySQL在服务器端提供只读的、单向的游标,而且只能在存储过程或者更底层的客户端API中使用。因为MySQL游标中指向的对象都是存储在临时表中而不是实际查询到的数据,所以MySQL游标总是只读的。它可以逐行指向查询结果,然后让程序做进一步的处理。在一个存储过程中,可以有多个游标,也可以在循环中“嵌套 阅读全文
posted @ 2021-11-13 17:25 小家电维修 阅读(86) 评论(0) 推荐(0) 编辑
摘要: MySQL允许通过触发器、存储过程、函数的形式来存储代码。从MySQL5.1开始,还可以在定时任务中存放代码,这个定时任务也被称为“事件”。存储过程和存储函数都被统称为“存储程序”。 这四种存储代码都使用特殊的SQL语句扩展,它包含了很多过程处理语法,例如循环和条件分支等。不同类型的存储代码的主要区 阅读全文
posted @ 2021-11-13 17:15 小家电维修 阅读(263) 评论(0) 推荐(0) 编辑
摘要: InnoDB是目前MySQL中唯一支持外键的内置存储引擎,所以如果需要外键支持那选择 就不多了(PBXT也有外键支持)。 使用外键是有成本的。比如外键通常都要求每次在修改数据时都要在另外一张表中多执行一次査找操作。虽然InnoDB强制外键使用索引,但还是无法消除这种约束检査的开销。如果外键列的选择性 阅读全文
posted @ 2021-11-13 16:59 小家电维修 阅读(110) 评论(0) 推荐(0) 编辑
摘要: MySQL5.0版本之后开始引入视图。视图本身是一个虚拟表,不存放任何数据。在使用SQL语句访问视图的时候,它返回的数据是MySQL从其他表中生成的。视图和表是在同一个命名空间,MySQL在很多地方对于视图和表是同样对待的。不过视图和表也有不同,例如,不能对视图创建触发器,也不能使用DROP TAB 阅读全文
posted @ 2021-11-13 16:51 小家电维修 阅读(323) 评论(0) 推荐(0) 编辑
摘要: 对用户来说,分区表是一个独立的逻辑表,但是底层由多个物理子表组成。实现分区的 代码实际上是对一组底层表的句柄对象(Handler Object)的封装。对分区表的请求,都会通过句柄对象转化成对存储引擎的接口调用。所以分区对于SQL层来说是一个完全封装底层实现的黑盒子,对应用是透明的,但是从底层的文件 阅读全文
posted @ 2021-11-13 16:28 小家电维修 阅读(117) 评论(0) 推荐(0) 编辑
摘要: 1.背景 之前记录过k8s中ingress以及nginx获取客户端真实IP的文章,我司这个项目架构和这个环境一样,因为遗留问题,导致这个架构比较乱,为了更清晰的记录,还是画个图吧。 可以看到以上配置跳来跳去,这也是历史遗留原因,首先比如www.baidu.com/lizexiong/test到达lb 阅读全文
posted @ 2021-11-13 01:08 小家电维修 阅读(478) 评论(0) 推荐(0) 编辑