索引

mysql索引原则

梦想的初衷 提交于 2020-04-06 03:54:41
设计原则 经常被用户条件查询的字段,创建索引 索引不是越多越好;索引占用磁盘空间,影响insert、update、delete性能 经常修改的表,不要建过多的索引;更新表数据时,索引也会进行微调或者更新,十分消耗系统资源 数据量小的表,不需要建索引;数据量小时查询本来就很快,但是建索引会对于索引结构的维护带来系统资源消耗 boolean值字段不需要建索引;比如deteleTag字段,只有0或者1的情况 唯一性字段建议建唯一索引;查询速度有明显提高 当排序是固定多个列时,在这些列上建组合索引 优化原则 避免使用 select * 范围查询索引失效。( > 、< 、between...and... 、<> 、!= 、like ) is null 、is not null 、or 索引失效 使用函数、计算等操作索引失效 组合索引最左原则。(建索引顺序与查询顺序要一致) 连接查询表之间的字符集与校对集要一致。( utf8 、utf8_bin) 来源: oschina 链接: https://my.oschina.net/u/4198095/blog/3217536

面试TodoList

╄→гoц情女王★ 提交于 2020-04-06 00:12:56
面试TodoList 面试TodoList 第一站深圳 Spring MySQL JVM 多线程 Netty Redis 知乎看到的Java面经,看到其中部分题目有启发性就记下来了,抽时间逐个解决吧。 查看原文 第一站深圳 多个线程同时读写,读线程的数量远远⼤于写线程,你认为应该如何解决 并发的问题?你会选择加什么样的锁? JAVA的AQS是否了解,它是⼲嘛的? 除了synchronized关键字之外,你是怎么来保障线程安全的? 什么时候需要加volatile关键字?它能保证线程安全吗? 线程池内的线程如果全部忙,提交⼀个新的任务,会发⽣什么?队列全部 塞满了之后,还是忙,再提交会发⽣什么? Tomcat本身的参数你⼀般会怎么调整? synchronized关键字锁住的是什么东⻄?在字节码中是怎么表示的?在内 存中的对象上表现为什么? wait/notify/notifyAll⽅法需不需要被包含在synchronized块中?这是为什 么? ExecutorService你⼀般是怎么⽤的?是每个service放⼀个还是⼀个项⽬ ⾥⾯放⼀个?有什么好处? Spring 你有没有⽤过Spring的AOP? 是⽤来⼲嘛的? ⼤概会怎么使⽤? 如果⼀个接⼝有2个不同的实现, 那么怎么来Autowire⼀个指定的实现? Spring的声明式事务 @Transaction注解⼀般写在什么位置?

基于三维GIS技术的矢量地图动态LOD渲染方法

寵の児 提交于 2020-04-05 21:03:01
本文从地图操作和要素可见性入手分析地图简化的影响因素,并基于分析的结果设计相应的缓存结构以加速地图的渲染。研究GPU环境下梯形格网的高效LOD方法,探讨简化前后节点的重组和显存中EBO数据的更新方法,最终提出一种基于 三维GIS 技术的矢量地图动态LOD渲染方法。 1 简化的影响因素 1.1 地图操作对简化的影响 本文方法依据视点进行简化,当要素与视点的位置发生变化时进行实时简化操作。用户进行地图操作时,当视点与要素的距离发生变化时进行简化,不发生变化时则可以使用缓存数据进行绘制,从而加快渲染。因此,需要讨论地图操作导致的视点与要素的距离变化情况。 (1)平移操作 平移操作可能会导致视点与要素的距离发生变化。在非俯仰状态下,平移操作不会导致视点与要素的距离发生变化;在俯仰状态下,平移操作会导致视点与要素的距离发生变化。 平移操作示意图 (2)旋转 旋转操作可能会导致视点与要素的距离发生变化。非俯仰状态下,旋转操作不会导致视点与要素的距离发生变化;俯仰状态下,旋转操作会导致视点与要素的距离发生变化。 旋转操作示意图 (3)放缩操作 放缩操作会导致视点与要素的距离发生变化。 放缩操作示意图 (4)俯仰 俯仰操作会导致视点与要素的距离发生变化。 俯仰操作示意图 综上分析可知,在非俯仰状态下,地图平移操作和旋转操作不会改变要素距视点的距离,可以使用上一帧的地图缓存进行绘制,加快其渲染速度

四轮面试,我拿到了美团点评高级Java岗的offer

老子叫甜甜 提交于 2020-04-05 18:51:03
坐标上海,金三银四拿下了美团点评高级Java岗的offer,薪资税前35k。 美团点评高级Java一面(技术,电话面试,约40分钟) 自我介绍。 项目介绍。 了解过redis源码及redis集群么? 分布式下redis如何保证线程安全? Hashmap的原理,源码? Hashmap增删的情况后端数据结构如何位移? hashmap容量为什么是2的幂次? object类你知道的方法? 你重写过hashcode和equals么,要注意什么? jvm内存分区,为什么要有新生代和老年代? 有做过JVM内存优化吗? 数据库索引 主键和唯一索引有什么区别? 聚集索引和非聚集索引的区别? MySQL存储引擎innoDB和MyISAM的区别? 讲一下稳定的排序算法和不稳定的排序算法? 讲一下快速排序的思想? 美团点评高级Java二面(技术,现场面试,约60分钟) 几种线程池区别? aio,nio,bio的了解,NIO的核心概念有哪些? 常用的NIO框架有哪些,优劣势? 事务的四大隔离级别? jvm场景问题, 标记清除多次后老年代产生内存碎片,引起full gc,接下来可能发生什么问题? MySQL innodb的b+树索引,主键索引,聚簇索引有什么区别? 数据库四大特性? MySQL里有哪些锁,行锁表锁,乐观锁呢? MySQL的死锁怎么产生的,举了两个例子。

SQL优化

℡╲_俬逩灬. 提交于 2020-04-05 18:04:59
SQL优化 1.原因 需要SQL优化的原因有:   一、SQL语句性能低下   二、执行时间过长   三、等待时间过长   四、SQL语句欠佳(多数出现在连接查询时)   五、索引失效   六、服务器参数设置不合理(例如:缓冲区、线程数) SQL:   编写过程:     select...dinstinct ...from...join...on...where...group by...having...order by...limit   解析顺序:     from...on...join...where...group by...having...select... dinstinct ...order by...limit 详细信息可参照: https://www.cnblogs.com/annsshadow/p/5037667.html SQL优化,主要就是在优化索引   索引作用:相当于书的目录   索引:index 是帮助mysql高效获取数据的数据结构。索引是数据结构 组成(树:B+树,Hash树) B+树数据结构图: B树不光有上边的二叉树,也可以有三叉乃至多叉树: B+三叉树图: 索引弊端: 索引的弊端: 1.索引本身很大, 可以存放在内存/硬盘(通常为 硬盘) 2.索引不是所有情况均适用: a.少量数据 b.频繁更新的字段 c.很少使用的字段 3

第五章 列表、元祖和字符串

僤鯓⒐⒋嵵緔 提交于 2020-04-05 17:54:28
5.1 列表    定义 :python的变量没有数据类型,它的列表可以同时存放不同类型的变量。    创建 :用中括号将数据包裹起来(数据之间用英文逗号隔开),贴上一个变量名,方便后面可以调用。 1 number = [1,2,3,4,5,6] 2 for each in number: 3 print(each) 4 5 1 6 2 7 3 8 4 9 5 10 6    向列表中添加元素 :     append() #append()方法是属于列表对象的方法,是将元素添加到列表的末尾,但是只能添加一个参数。     extend() #extend()事实上是使用一个列表来扩充另外 一个列表,所以他的参数是另一个列表,添加在列表的末尾。     insert() #insert()方法有两个参数:第一个参数是指定待插入的位置(索引值),第二个参数是待插入的元素值。第一个参数的值还支持负数,表示与列表,末尾的相对距离。 number = [1,2,3,4,5,6] number.append(7) number [1, 2, 3, 4, 5, 6, 7] number.extend([8,9]) number [1, 2, 3, 4, 5, 6, 7, 8, 9] number.insert(0,0) number [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

MySQL优化

假装没事ソ 提交于 2020-04-05 17:41:05
一、EXPLAIN 做MySQL优化,我们要善用 EXPLAIN 查看SQL执行计划。 下面来个简单的示例,标注(1,2,3,4,5)我们要重点关注的数据 type列,连接类型。一个好的sql语句至少要达到range级别。杜绝出现all级别 key列,使用到的索引名。如果没有选择索引,值是NULL。可以采取强制索引方式 key_len列,索引长度 rows列,扫描行数。该值是个预估值 extra列,详细说明。注意常见的不太友好的值有:Using filesort, Using temporary 二、SQL语句中IN包含的值不应过多 MySQL对于IN做了相应的优化,即将IN中的常量全部存储在一个数组里面,而且这个数组是排好序的。但是如果数值较多,产生的消耗也是比较大的。再例如:select id from table_name where num in(1,2,3) 对于连续的数值,能用 between 就不要用 in 了;再或者使用连接来替换。 三、SELECT语句务必指明字段名称 SELECT *增加很多不必要的消耗(cpu、io、内存、网络带宽);增加了使用覆盖索引的可能性;当表结构发生改变时,前断也需要更新。所以要求直接在select后面接上字段名。 四、当只需要一条数据的时候,使用limit 1 这是为了使EXPLAIN中type列达到const类型 五

Elasticsearch 入门安装

こ雲淡風輕ζ 提交于 2020-04-05 15:07:34
点击前往Elastic官网 1、ElasticSearch概念 Elasticsearch 是一个分布式使用 RestFul 风格的数据搜索引擎 Elasticsearch 是基于 Lucene 的搜索服务器,提供了一个分布式全文搜索引擎 Elasticsearch 是当前流行的企业级搜索引擎,能够达到实时搜索,且稳定,可靠,快速。 专业术语 概念 Node(节点) 单个的装有Elasticsearch服务并且提供故障转移和扩展的服务器。 Cluster(集群) 一个集群就是由一个或多个node组织在一起,共同工作,共同分享整个数据具有负载均衡功能的集群。 Document(文档) 一个文档是一个可被索引的基础信息单元。 Index(索引) 索引就是一个拥有几分相似特征的文档的集合。 Type(类型) 一个索引中,你可以定义一种或多种类型。 Field(列) Field是Elasticsearch的最小单位,相当于数据的某一列。 Shards(分片) Elasticsearch将索引分成若干份,每个部分就是一个shard。 Replicas(复制) Replicas是索引一份或多份拷贝。 1.2、Elasticsearch 和 传统数据库对比 关系型数据库(如 MySQL) 非关系型数据库(Es) 数据库 Database 索引 Index 表 Table 类型 Type 数据行

oracle中的函数

拟墨画扇 提交于 2020-04-04 10:28:08
一、单行函数 1.定义: 作用于一行,返回值为一个 注:以下所有的操作的表是Oracle数据库中自带的用户scott下的表 2.字符函数 --小写变大写 select upper('yes') from dual;--YES select lower('YES') from dual;--yes 3.数值函数 select round(26.18,1) from dual;--四舍五入,后面的参数为保留几位小数,26.2 select trunc(26.18,1) from dual;--直接截取,不在看后面面的位数,26.1 select mod(10,3) from dual;--求余,1 4.日期函数 系统时间:sysdate --查询emp表中所有员工入职距离现在几天 select sysdate-e.hiredate from emp e; --算出明天此刻 select sysdate+1 from dual; --查询emp表中所有员工入职距离现在几个月 select months_between(sysdate,e.hiredate) from emp e; --查询emp表中所有员工入职距离现在几个年 select months_between(sysdate,e.hiredate)/12 from emp e; --查询emp表中所有员工入职距离现在几周

windows下的coreseek安装及PHP调用入门

半城伤御伤魂 提交于 2020-04-04 06:48:48
转载:http://zhan.renren.com/longmensoft?gid=3602888498043096197&checked=true 把我的运行环境简单说一下:windows XP,装了php/mysql 下面进入正题: 1.到官网下载 coreseek 2 安装执行环境,一般系统都会有安装,官网有说明 3.将下载的coreseek压缩包解压到你觉得合适的位置,把主文件夹的名字改为你觉得合适的名字。 4.MYSQL测试: 在MYSQL的test数据库中,导入coreseek文件夹下的sql文件: var\test\documents.sql 这样就生成了测试用的数据表 test.documents 下面这一步很关键,我就在这一步上被卡了好长时间: 打开etc下的csft_mysql.conf,填入登陆mysql需要的基本信息。 maybe 新手对配置搞不懂,请参看http://www.borghan.com/archives/using-coreseek-with-PHP-with-multiple-indexes.html 5.建立索引 通过修改csft_mysql.conf的配置或者创建新的conf文件,就可以指定要建立索引的数据表以及建立索引的方式。如何配置请参看官方手册,或者这篇文章: http://www.linuxidc.com/Linux/2013