
MySQL
文章平均质量分 95
Java都不学
这个作者很懒,什么都没留下…
展开
-
Mybatis-Plus——分页+模糊查询
假如,我们有这样一种排序:全匹配显示在最前面,比如:孔。数据左半部分匹配,右边按字母排序,比如:孔1、孔2、孔技术。从中间开始匹配,比如:1孔、2孔。第2步和第3步,还要根据字符长度排序,字符短的排在前面,比如:孔1、2孔、1孔技术1原创 2022-11-16 22:51:14 · 5956 阅读 · 0 评论 -
MySQL45讲(第40~44讲)
Simple Nested Loop Join 的性能问题原创 2022-11-02 00:24:27 · 682 阅读 · 0 评论 -
MySQL45讲(第36~40讲)
临时表与内存表的区别内存表,指的是使用Memory引擎的表,建表语法是create table … engine=memory。这种表的数据都保存在内存里,系统重启的时候会被清空,但是表结构还在。除了这两个特性看上去比较“奇怪”外,从其他的特征上看,它就是一个正常的表。而临时表,可以使用各种引擎类型 。如果是使用InnoDB引擎或者MyISAM引擎的临时表,写数据的时候是写到磁盘上的。当然,临时表也可以使用Memory引擎。原创 2022-11-01 22:44:34 · 290 阅读 · 0 评论 -
MySQL45讲(第31~35讲)
这个策略最大的收益,就是在扫描这个大表的过程中,虽然也用到了Buffer Pool,但是对young区域完全没有影响,从而保证了Buffer Pool响应正常业务的查询命中率由于客户端的性能问题,对数据库影响更严重的例子?这个问题的核心是,造成了“长事务”。至于长事务的影响,就要结合我们前面文章中提到的锁、MVCC的知识点了。原创 2022-10-31 22:26:23 · 914 阅读 · 0 评论 -
MySQL45讲(第26~30讲)
这时,如果实例X有从库,那么将CREATE TABLE和insert语句的binlog同步过去执行的话,执行事务之前就会先执行这两个SET命令, 这样被加入从库的GTID集合的,就是图中的这两个GTID。举个例子,一个事务更新了表t1和表t2中的各一行,如果这两条更新语句被分到不同worker的话,虽然最终的结果是主备一致的,但如果表t1执行完成的瞬间,备库上有一个查询,就会看到这个事务“更新了一半的结果”,破坏了事务逻辑的原子性。而且,由于所有线程都处于等待状态,此时占用的CPU却是0,而这明显不合理。原创 2022-10-29 22:33:30 · 367 阅读 · 0 评论 -
MySQL45讲(第22-25讲)
假设一个事务A执行到一半,已经写了一些redo log到buffer中,这时候有另外一个线程的事务B提交,如果innodb_flush_log_at_trx_commit设置的是1,那么按照这个参数的逻辑,事务B要把redo log buffer里的日志全部持久化到磁盘。如果把innodb_flush_log_at_trx_commit设置成1,那么redo log在prepare阶段就要持久化一次,因为有一个崩溃恢复逻辑是要依赖于prepare 的redo log,再加上binlog来恢复的。原创 2022-10-27 21:39:14 · 486 阅读 · 0 评论 -
MySQL45讲(第16-21讲)
“orderby”是怎么工作的?原创 2022-10-25 21:21:17 · 236 阅读 · 0 评论 -
MySQL45讲(第11-15讲)
当要给字符串创建前缀索引时,有什么方法能够确定我应该使用多长的前缀呢?实际上,我们在建立索引时关注的是区分度,区分度越高越好。因为区分度越高,意味着重复的键值越少。因此,我们可以通过统计索引上有多少个不同的值来判断要使用多长的前缀。原创 2022-10-23 22:30:59 · 996 阅读 · 0 评论 -
MySQL45讲——第6~10讲
当mysqldump使用参数–single-transaction的时候,导数据之前就会启动一个事务,来确保拿到一致性视图。而由于MVCC的支持,这个过程中数据是可以正常更新的。有了这个功能,为什么还需要FTWRL呢?原创 2022-10-22 23:05:55 · 383 阅读 · 0 评论 -
MySQL实战45讲(前5讲)
1、覆盖索引:如果查询条件使用的是普通索引(或是联合索引的最左原则字段),查询结果是联合索引的字段或是主键,不用回表操作,直接返回结果,减少IO磁盘读写读取正行数据2、最左前缀:联合索引的最左 N 个字段,也可以是字符串索引的最左 M 个字符。原创 2022-10-20 20:55:10 · 2310 阅读 · 1 评论