摘要:
equals() 和 == 的区别,为什么重新equal要重写hashCode? ==是运算符,equals()来自于Object类定义的一个方法 ==可以用于基本数据类型和引用数据类型 equals()只能用于引用类型 ==号两端如果是基本数据类型,就是判断值是否相同 equals在重写后,是判断 阅读全文
摘要:
MyISAM和MEMORY存储引擎采用的是表级锁,InnoDB存储引擎既支持行级锁又支持表级锁 一、MyISAM表锁 MySQL的表级锁有两种模式:表共享读锁和表独占写锁 1、对MyISAM表的读操作,不会阻塞其他用户对同一表的读请求,但会阻塞对同一表的写请求 注意: ①有两个session,s1和 阅读全文
摘要:
1、当使用索引列进行查询的时候见谅不要使用表达式,把计算放到业务层而不是数据库层 select id from table where id+1=5; 优先级范围为ref select id from table where id=4; 优先级范围为count 2、尽量使用主键查询,而不是其他索引, 阅读全文
摘要:
一、索引的格式 为什么不用hash表的索引格式? 1、hash存储需要将所有的数据文件添加到内存中,比较耗费内存空间 2、如果等值查询,hash定位会很快,但是企业中或工作中范围查找会更多,因此hash就不合适了 当链表长度达到8,节点个数达到64时会由链表转换为红黑树 为什么不用二叉树的索引格式? 阅读全文
摘要:
sql语句执行计划 id select_type simple指普通查询,嵌套查询会用primary标识,并不是主键的意思 table:表名 type type显示的是访问类型,访问类型表示我是以何种方式去访问我们的数据,最容易想的是全表扫描,直接暴力的遍历一张表去寻找需要的数据,效率非常低下,访问 阅读全文
摘要:
一、mysql基础层次 词法分析:将字符串拆分,识别字符串中的表名,条件符等 语法分析:语法是否符合sql语法 注意:在sql语句中尽量避免出现select * 因为sql语句查询出的所有数据都是从磁盘读出来的,要尽量避免磁盘io 二、mysql调优分析 1、设置参数:set profiling = 阅读全文
摘要:
一、分词器 1、作用:①切词 ②normalizaton(提升recall召回率:能搜索到的结果的比率) 2、分析器 ①character filter:分词之前预处理(过滤无用字符、标签等,转换一些&=>and 《Elasticsearch》=> Elasticsearch A、HTML Stri 阅读全文
摘要:
一、Painless 1、Painless是一种专门用于Elasticsearch的简单,用于内联和存储脚本,类似于Java,也有注释、关键字、类型、变量、函数等,安全的脚本语言。它是Elasticsearch的默认脚本语言,可以安全地用于内联和存储脚本。 2、语法 POST /product2/_ 阅读全文
摘要:
一、正排索引 1、倒排索引的优势在于查找包含某个项的文档,如果用它确定哪些项是否存在文档中那么就使用正排索引 2、区别正排索引和倒排索引 3、doc_value与fielddata 二、基于mget批量查询以及基于bulk的批量增删改 1、mget:批量查询 GET /<index>/_mget G 阅读全文
摘要:
1、概念:mapping就是ES数据字段field的type元数据,ES在创建索引的时候,dynamic mapping会自动为不同的数据指定相应mapping,mapping中包含了字段的类型、搜索方式(exact value或者full text)、分词器等。 2、查看mapping:GET / 阅读全文