• 从零讲JAVA ,给你一条清晰地学习道路!该学什么就学什么!!
    1.计算机基础:1.1数据结构基础:主要学习:1.向量,链表,栈,队列和堆,词典。熟悉2.树,二叉搜索树。熟悉3.图,有向图,无向图,基本概念4.二叉搜索A,B,C类熟练,9大排序熟悉。5.树的前中后,层次,之字,最短路。6.KMP等字符串算法。1.2操作系统:主要学习:1.进程,线程,进程线程区别。进程间通信2.进程调度算法理解3.存储,虚拟内存,分页分段,内存调度算法4.文件系统,链式,索引5.死锁:原因,避免,解除k6.Linux基本操作命令,会一门脚本编程:shell,Python1.3计算机网络:...
  • 面试3连炮:聊聊ES写入数据的原理?查询数据的原理?倒排索引了解吗?
    公众号后台回复“学习”,获取作者独家秘制精品资料扫描下方海报二维码,试听课程:(课程详细大纲,请参见文末)面试题es 写入数据的工作原理是什么啊?es 查询数据的工作原理是什么啊?底层的 lucene 介绍一下呗?倒排索引了解吗?面试问这个,其实面试官就是要看看你了解不了解 es 的一些基本原理,因为用 es 无非就是写入数据,搜索数据。你要是不明白你发起一个写入和搜索请求的时候,es 在干什么,那你真的是......对 es 基本就是个黑盒,你还能干啥?你唯一能干的就是用 es 的 api 读写数据了。要...
  • 数据库索引的原理
    一 前言   本篇文章主要讲述数据库索引的基本原理,及基本的数据库优化的知识。若有遗漏、错误,希望多多指正、交流。 二.基础知识2.1 页   数据库文件存储是已页为存储单元的,一个页是8K(8192Byte),一个页就可以存放N行数据。我们常用的页类型就是数据页和索引页。一个页中除了存放基本数据之外还需要存放一些其他的数据,如页的信息、偏移量等,如下图所示。   虽然SQLServer是以页为单位存储数据,但是其分配空间是以一个盘区为单位的(8个页=64K),这样做的目的主要是为提高I/O的性能。 2.2...
  • Oracle主键约束、唯一键约束、唯一索引的区别
    接下来我们看看数据库中的主键约束、唯一键约束和唯一索引的区别。SQL> select * from v$version; BANNER--------------------------------------------------------------------------------Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - ProductionPL/SQL Release 11.2.0.1.0 - ProductionCORE 11.2.0.1.0 ProductionTNS for Linux: Version 11.2.0.1.0 - ProductionNLSRTL Version 11.2.0.1.0 - ProductionSQL> create table test 5 tablespace users; Table created.SQL> select constraint_name, constraint_type from user_constraints;CONSTRAINT_NAME C------------------------------ -PK_TEST P在test表中,我们指定了ID列作为主键,Oracle数据库会自动创建一个同名的唯一索引:SQL> select index_name, index_type, uniqueness, tablespace_name2 from user_indexes3 where table_owner='SCOTT'4 and table_name = 'TEST'; INDEX_NAME INDEX_TYPE UNIQUENES TABLESPACE_NAME-------------------- -------------------- --------- ------------------------------PK_TEST NORMAL UNIQUE USERS此时,如果我们再试图在ID列上创建一个唯一索引,Oracle会报错,因为该列上已经存在一个唯一索引:SQL> create unique index idx_test_uk on test;create unique index idx_test_uk on test *ERROR at line 1:ORA-01408: such column list already indexed即使创建非唯一索引也不行:SQL> create index idx_test_id on test;create index idx_test_id on test *ERROR at line 1:ORA-01408: such column list already indexed那么唯一键约束的情况是怎样的呢?
  • 从小白到大师,这里有一份Pandas入门指南
    这是一篇最佳实践教程,既适合用过 Pandas 的读者,也适合没用过但想要上手的小白。通过本文,你将有望发现一到多种用 pandas 编码的新方法。本文包括以下内容:Pandas 发展现状;内存优化;索引;方法链;随机提示。Pandas 的定义和现状什么是 Pandas?Pandas 的核心开发者之一 Marc Garcia 发表了一段非常有趣的演讲——「走向 Pandas 1.0」。这个数据集足够简单,但也足以让你上手 Pandas。在内部,Pandas 将数据框存储为不同类型的 numpy 数组。
  • 如何让你的MySQL 跑的更快
    笔者在工作实践中发现,不良的SQL往往来自于不恰当的索引设计、不充份的连接条件和不可优化的where子句。----测试环境: 主机:HP LH II---- 主频:330MHZ---- 内存:128兆----操作系统:Operserver5.0.4----数据库:Sybase11.0.3一、不合理的索引设计例:表record有620000行,试看在不同的索引下,下面几个 SQL的运行情况:1.在date上建有一非个群集索引select count(*) from record where date >'19991201' and date < '19991214'and amount >2000 (25秒)select date ,sum from record group by date(55秒)select count(*) from record where date >'19990901' and place in (27秒)---- 分析:----date上有大量的重复值,在非群集索引下,数据在物理上随机存放在数据页上,在范围查找时,必须执行一次表扫描才能找到这一范围内的全部行。
  • 面试官:为什么 MySQL 索引要使用 B+树而不是其它树形结构?比如 B 树?
    怎么得到InnoDB主键索引B+树的高度?上面我们通过推断得出B+树的高度通常是1-3,下面我们从另外一个侧面证明这个结论。在InnoDB的表空间文件中,约定page number为3的代表主键索引的根页,而在根页偏移量为64的地方存放了该B+树的page level。关于二级索引与主键索引的区别请参考MySQL相关书籍,本文不在此介绍。那么如果有一张表行数是一千万,那么他的B+树高度依旧是3,查询效率仍然不会相差太大。最后回顾一道面试题有一道MySQL的面试题,为什么MySQL的索引要使用B+树而不是其它树形结构?
  • 干货 | 鸟瞰 MySQL,唬住面试官!
    innodb 在 mysql5.5.5 版本开始成为 mysql 默认存储引擎。binlog 又称作归档日志,它记录了对 MySQL 数据库执行更改的所有操作,但是不包括 SELECT 和 SHOW 这类操作。binlog 是追加形式的写入日志,后面的日志不会被前面的覆盖。只有符合上述两个条件的纪录,才能作为查询结果返回。
  • 分布式系统如何设计,看看Elasticsearch是怎么做的
    我们先来简单看下Elasticsearch的架构。Elasticsearch的详细介绍可以到官网查看。角色部署方式接下来再看看角色分工的两种不同方式:Elasticsearch支持上述两种方式:1.混合部署(左图)默认方式。Elasticsearch中每个Node都需要和其余的每一个Node都保持13个连接。另外,还可以通过分组,使Transport Node只连接固定分组的DataNode,这样Elasticsearch的连接数问题就彻底解决了。Elasticsearch 数据层架构接下来我们看看当前Elasticsearch的数据层架构。数据存储Elasticsearch的Index和meta,目前支持存储在本地文件系统中,同时支持niofs,mmap,simplefs,smb等不同加载方式,性能最好的是直接将索引LOCK进内存的MMap方式。默认,Elasticsearch会自动选择加载方式,另外可以自己在配置文件中配置。
  • 搜索技术的秘密(一):概览
    搜索引擎的最基础的技术就是倒排索引,它是关键词到文档列表的映射。这个交集运算算法也是搜索引擎的另一个重要的秘密之一,它对搜索性能的影响至关重要。如何降低内存又不会显著增加 IO 成本,这又是搜索引擎的又一个重难点之一。并发搜索进一步让磁盘的磁头繁忙的不可开销。这也是搜索技术的另一个重要当不必要的考虑点之一,尽可能地节约硬件成本。搜索引擎还要支持模糊查询,这就涉及到查询范围的扩大化、查询结果的相似度计算以及排序算法。
  • TiDB 在华泰证券的探索与实践
    经过多方比较,本文将从 TiDB 技术特点、开发注意事项以及 TiDB 在华泰证券的实践进展等方面进行介绍。至此,TiDB 可以通过一套系统,同时支持 OLTP 与 OLAP,免除用户数据同步的烦恼。支持分布式事务TiDB 支持标准的 ACID 事务,通过两阶段提交和乐观锁实现分布式事务。高可用TiDB/TiKV/PD 这三个组件都能容忍部分实例失效,不影响整个集群的可用性。TiDB 是无状态的,可以部署多个实例,前端通过负载均衡组件对外提供服务。
  • PHP接口性能优化之路
    奇技指南笔者最近在做PHP接口的性能优化,在排查性能问题和优化的过程中总结了一些心得,分享给大家。本文来自公众号Qtest之道No.1性能问题排查首先,做性能优化要先进行性问题排查,即排查PHP接口的代码实现中那一块执行比较慢。排查方法一笔者使用的ThinkPHP框架中自带了G方法可以很方便的获取某个区间的运行时间和内存占用情况。排查方法二使用PHP性能分析工具来辅助定位。目前市面上有很多PHP性能分析工具,老牌的调试工具XDebug,以及Facebook开源的Xhprof。所以升级PHP版本的收益还是很大的。因为,MySQL 为了提高性能,会将表的索引装载到内存中。
  • 面试的时候,如果你没掌握索引,绝对没戏!
    之前朋友在面试的时候被问到了许多关于索引的问题,而索引这个词一直也是我们在开发中最最最常见的,也是很多在进行性能优化的时候会去做的一件事情,所以今天我们就来说说面试中关于索引的那点事。但是面试的时候一般不会问你索引是什么?使用哈希索引的原因是,在寻找值时哈希表效率极高。所以,如果使用哈希索引,对于比较字符串是否相等的查询能够极快的检索出的值。而B树则需要进行每一层的递归遍历,相邻的元素可能在内存中不相邻,所以缓存命中性没有B+树好。
  • 鸟瞰 MySQL,唬住面试官!
    innodb 在 mysql5.5.5 版本开始成为 mysql 默认存储引擎。binlog 又称作归档日志,它记录了对 MySQL 数据库执行更改的所有操作,但是不包括 SELECT 和 SHOW 这类操作。binlog 是追加形式的写入日志,后面的日志不会被前面的覆盖。只有符合上述两个条件的纪录,才能作为查询结果返回。
  • 聊聊数据库优化
    写在前面数据库优化涉及到方方面面的知识,每种数据库的架构,优化方式也都有着很大的差异,如果想做好数据库优化要了解数据库的技术架构、存储结构、存储方式、缓存结构、SQL语句执行过程等有很深刻的了解。目的是让开发人员对常用数据库优化有所了解。数据库的优化也符合二八法则· 80%的性能问题是由20%的应用导致的。数据库优化该怎么做在小品里面问大象放冰箱分几步?每种数据库都有工具可以查看SQL的执行计划。聊聊索引前面也提到索引对于数据库的优化特别重要,接下来聊聊创建和使用索引时的一些注意事项。
  • 项目中常用的19条MySQL优化技巧
    一 善用EXPLAIN做MySQL优化,我们要善用EXPLAIN查看SQL执行计划。一个好的sql语句至少要达到range级别。杜绝出现all级别2、key列:使用到的索引名。注意常见的不太友好的值有:Using filesort, Using temporary二 SQL语句中IN包含的值不应过多MySQL对于IN做了相应的优化,即将IN中的常量全部存储在一个数组里面,而且这个数组是排好序的。所以要求直接在select后面接上字段名。当然,union all的前提条件是两个结果集没有重复数据。比如此列中,上一页最大的id是866612。主要的原因是扫描行数过多。但是可以使用LIKE “name%”。庆幸的是在MySQL中,有全文索引来帮助我们。
  • 面试官:为什么MySQL的索引要使用B+树,而不是其它树?比如B树?
    答案:约2千万为什么是这么多?怎么得到InnoDB主键索引B+树的高度?在InnoDB的表空间文件中,约定page number为3的代表主键索引的根页,而在根页偏移量为64的地方存放了该B+树的page level。关于二级索引与主键索引的区别请参考MySQL相关书籍,本文不在此介绍。那么如果有一张表行数是一千万,那么他的B+树高度依旧是3,查询效率仍然不会相差太大。region表只有5行数据,当然他的B+树高度为1。面试题有一道MySQL的面试题,为什么MySQL的索引要使用B+树而不是其它树形结构?来源:https://dwz.cn/exC8JdQS近期热文面试官问,为什么建议MySQL列属性尽量用 NOT NULL ?
  • MongoDB是什么?看完你就知道了!
    用一句话总结MongoDB是一款为web应用程序和互联网基础设施设计的数据库管理系统。没错MongoDB就是数据库,是NoSQL类型的数据库。MongoDB提出的是文档、集合的概念,使用BSON作为其数据模型结构,其结构是面向对象的而不是二维表,存储一个用户在MongoDB中是这样子的。{username:'123',password:'123'}使用这样的数据模型,使得MongoDB能在生产环境中提供高读写的能力,吞吐量较于mysql等SQL数据库大大增强。自动故障转移是副本集的概念,MongoDB能检测主节点是否存活,当失活时能自动提升从节点为主节点,达到故障转移。
  • 同事用这2个小技巧,让SQL语句效率提升了1000倍
    接着插入4条数据,其中最后一条数据的 id 为。= 1 的动物有哪些select * from animal where id !所以,坚决不允许字段的值为 null,否则可能会出现与预期不符合的结果。反正我之前有踩过这个坑,不知道大家踩过木有?如果真的这样的话,对于 != 1 or id is null;结果如下:2. 尽可能用 union 来代替 or、刚才我们给 id 这个字段建立了索引,如果我们来进行等值操作的话,一般会走索引操作,不信你看:explain select * from animal where id = 1;结果如下:通过执行计划可以看见,id 上的等值查找能够走索引查询,其中type = ref :表示走非唯一索引rows = 1 :预测扫描一行、那 id is null 会走索引吗?
官方公众号
活跃用户
《科技日报》是富有鲜明科技特色的综合性日报,是面向国内外公开发行的中央主流新闻媒体,是党和国家在科技领域的重要舆论前沿,是广大读者依靠科技创造财富、提升文明、刷新生活的服务平台,是中国科技界面向社会、连接世界的明亮窗口。
让创业者不再孤独@i黑马
凤凰科技频道官方账号,带你直击真相。
数字生活家,手机新娱乐
腾讯新闻旗下腾讯科技官方账号,在这里读懂科技!
普及数据思维,传播数据文化
定期推送python基础,开发框架,数据库,前端,linux等相关知识,致力打造一个实用的推送平台,希望能够成为大家的宝典.
分享最有价值的互联网技术干货文章,AI、Python、Java、Android、iOS、前端、后端等,助力您成为有思想的全栈架构师,聊架构,聊职场、聊人生!打造最有价值的架构师圈子和社区,助力你的个人提升和发展~
讨论和学习C/C++编程知识,分享C语言和C++开发相关的技术文章和工具资源
分享编程思想、职业发展、个人见解。
阿里巴巴官方技术号,关于阿里的技术创新均呈现于此。
记录工作,生活的地方。
推崇基础学习与原理理解,不谈大而空的架构与技术术语,分享接地气的服务器开发实战技巧与项目经验,实实在在分享可用于实际编码的编程知识。
最有价值的架构师圈子和社区,我们分享各种互联网架构技术干货,探讨架构设计和实战经验,不定期送书、分享学习资料与面试题等。关注学习,早日成为架构师。
通俗易懂,用大白话、幽默风趣地讲解web前端知识,让每个新手入门无难度
分享Web后端开发技术,分享PHP、Ruby、Python等用于后端网站、后台系统等后端开发技术;还包含ThinkPHP,WordPress等PHP网站开发框架、Django,Flask等Python网站开发框架。
你的健康生活小助手,预约挂号老朋友。
专注年轻人的AI学习与发展平台
感谢订阅,我叫杨钊,也叫big banana,大家都叫我大蕉。技术探针一枚。主要分享最近关注或者将要关注的东西。万一能对您有一点点的帮助那就更好了。
TechWeb专注于互联网消费领域,每日专业提供互联网产品、智能设备及互联网服务等方面的最新资讯。