• 一份完整的 MySQL 开发规范,进大厂必看!
    显示数据时,使用inet_ntoa把整型的ip地址转为地址显示即可。如果一定要使用,建议把BLOB或是TEXT列分离到单独的扩展表中,查询时一定不要使用select * 而只需要取出必要的列,不需要TEXT列的数据时不要对该列进行查询。TEXT或BLOB类型只能使用前缀索引因为MySQL对索引字段长度是有限制的,所以TEXT类型只能使用前缀索引,并且TEXT列上是不能有默认值的。TIMESTAMP 占用4字节和INT相同,但比INT可读性高超出TIMESTAMP取值范围的使用DATETIME类型存储。
  • 一手好 SQL 是如何炼成的?
    MySQL性能最大数据量抛开数据量和并发数,谈性能都是耍流氓。MySQL没有限制单表最大记录数,它取决于操作系统对文件大小的限制。性能由综合因素决定,抛开业务复杂度,影响程度依次是硬件配置、MySQL配置、数据表设计、索引优化。max_connections是指MySQL实例的最大连接数,上限值是16384,max_user_connections是指每个数据库用户的最大连接数。MySQL会为每个连接提供缓冲区,意味着消耗更多的内存。实施原则相比NoSQL数据库,MySQL是个娇气脆弱的家伙。避免空值MySQL中字段为NULL时依然占用空间,会使索引、索引统计更加复杂。MySQL就是鱼塘,最大并发数和网络带宽就是出水口,用户SQL就是漂浮物。
  • SQL 性能优化梳理
    事务可能读取未提交的数据,造成脏读。被用来设计处理大量短期事务,具有高性能和自动崩溃恢复的特性。MyISAM引擎,不支持事务和行级锁,崩溃后无法安全恢复。2 创建时优化2.1 Schema和数据类型优化整数TinyInt,SmallInt,MediumInt,Int,BigInt 使用的存储8,16,24,32,64位存储空间。使用Unsigned表示不允许负数,可以使正数的上线提高一倍。MySql只能高效的利用索引的最左前缀列。因为MySql的连接和断开都是轻量级的操作,不会由于查询拆分为多次,造成效率问题。group by 按照标识列分组效率高,分组结果不宜出行分组列之外的列。
  • PostgreSQL 12 正式发布:全面的性能提升
    PostgreSQL 12 又增加了几个新特性来持续实现对 SQL 标准的符合性的强化。PostgreSQL 12 加入了对 JSON 文档进行查询时使用 JSON 路径表达式的功能,这也是 SQL/JSON 中定义的规范。PostgreSQL 12 也引入了“生成列”功能,这也是 SQL 标准中的要求,这些字段值是通过同一表中其它列计算而来的。在这一版本中,PostgreSQL 支持“保存生成列值”的功能,即将这些计算出来的数据存储在磁盘上。另外,PostgreSQL 12 现在支持多约束的授权方式。还有,PostgreSQL 12 通过使用pg_checksums指令对停机的 PostgreSQL 来开启或关闭页校验功能,该功能有助于检查已写入磁盘的数据一致性, 而以前版本中该操作仅允许在initdb的阶段来执行。
  • 知识图谱入门 ,语义搜索
    线上步骤将混合查询分解为一组原子查询;使用DB和IR引擎执行原子查询;根据生成的查询树合并部分结果;对最后的答案排序。阅读过本文的人还看了以下文章:分享《深度学习入门:基于Python的理论与实现》高清中文版PDF+源代码《21个项目玩转深度学习:基于TensorFlow的实践详解》完整版PDF+附书代码《深度学习之pytorch》pdf+附书源码李沐大神开源《动手学深度学习》,加州伯克利深度学习教材笔记、代码清晰易懂!李航《统计学习方法》最新资源全套!《神经网络与深度学习》最新2018版中英PDF+源码将机器学习模型部署为REST APIFashionAI服装属性标签图像识别Top1-5方案分享重要开源!
  • 如何优化大规模推荐?下一代算法技术JTM来了
    二. 现有体系存在的问题如下图所示,在大规模任务中,搜索,推荐和广告的系统通常由模型,索引和检索算法三大组件组成。三者共同决定了召回质量且存在内在联系。综上分析,本文针对当前大规模推荐方法中存在的问题,提出了一种统一目标下的模型、索引、检索联合优化的算法JTM,打破系统各模块独立优化带来的相互掣肘,使得整体推荐效能达到最优。三. 端到端联合学习的深度树匹配推荐技术JTM继承了TDM树结构索引+任意深度用户-商品偏好打分模型的系统框架,通过联合优化和层次化特征建模取得了大幅超越TDM的推荐精度。下图给出了TDM候选子集的生成过程。
  • SQL 性能优化梳理
    事务可能读取未提交的数据,造成脏读。被用来设计处理大量短期事务,具有高性能和自动崩溃恢复的特性。MyISAM引擎,不支持事务和行级锁,崩溃后无法安全恢复。2 创建时优化2.1 Schema和数据类型优化整数TinyInt,SmallInt,MediumInt,Int,BigInt 使用的存储8,16,24,32,64位存储空间。使用Unsigned表示不允许负数,可以使正数的上线提高一倍。MySql只能高效的利用索引的最左前缀列。因为MySql的连接和断开都是轻量级的操作,不会由于查询拆分为多次,造成效率问题。group by 按照标识列分组效率高,分组结果不宜出行分组列之外的列。
  • 通过某瓣真实案例看Elasticsearch优化
    前言我瓣用户产品中有多个核心场景都在使用Elasticsearch,主要用在全文搜索、聚合计算等方面。优化点1这让我一时间没有了头绪,我开始搜索一些「优化Elasticsearch」相关的技术博文和开源书籍,希望从中找找灵感。然后就在Elastic社区找到了一个query+aggs查询性能问题的帖子,其作者也遇到了使用聚合后查询非常慢的问题,@kennywu76给出了一个方案: 「在每一层terms aggregation内部加一个{"execution_hint": "map"}」。因此ES利用了一种叫做global ordinals的数据结构来对聚合的字段来做bucket分配,这个ordinals用有序的数值来代表字段里唯一的一个字符串,因此为每个ordinals值分配一个bucket就等同于为每个唯一的term分配了bucket。
  • 太太太长了,不行,我受不鸟了
    MySQL没有限制单表最大记录数,它取决于操作系统对文件大小的限制。性能由综合因素决定,抛开业务复杂度,影响程度依次是硬件配置、MySQL配置、数据表设计、索引优化。虽然当时查询速度还凑合,随着数据不断增长,有朝一日必定不堪重负。maxconnections是指MySQL实例的最大连接数,上限值是16384,maxuserconnections是指每个数据库用户的最大连接数。不推荐使用外键约束,用应用程序保证数据准确性。不允许执行极度耗时的事务,配合应用程序拆分成更小的事务。索引优化分页查询很重要,如果查询数据量超过30%,MYSQL不会使用索引。单表索引数不超过5个、单个索引字段数不超过5个。
  • 记一次神奇的 SQL 查询经历,group by 慢查询优化
    简单来说,就是查询一定条件下,都有哪些用户的。思路一后面应该加上 order by null;避免无用排序,但其实对结果耗时影响不大,还是很慢。思路二where条件太复杂,没索引,导致查询慢,但我给where条件的所有字段加上了组合索引,也还是没用思路三既然group by慢,换distinct试试??虽然知道group by和distinct有很小的性能差距,但是真没想到,差距居然这么大!!!是因为sqlyog会在查询语句后默认加上limit 1000,所以导致很快。经过你的提醒,我确实发现,explain执行计划里,索引好像并没有用到我创建的idx_end_time。
  • 开发人员不得不知的MySQL索引和查询优化
    在这些情况下,最好根本不要使用索引,因为查询优化器发现某个值出现在表的数据行中的百分比很高的时候,它一般会忽略索引,进行全表扫描。MySQL 8.0 开始支持函数索引,5.7 可以通过虚拟列的方式来支持,之前只能新建一个 ROUND 列然后去维护。需要了解 MySQL 的架构图分为 Server 和存储引擎层。MySQL 中无法利用索引完成的排序操作称为“文件排序”,其实不一定是文件排序,内部使用的是快排。using temporary:使用了临时表保存中间结果,MySQL 在对查询结果排序时使用临时表。常见于排序 order by 和分组查询 group by。如果将主键置于 where 列表中,MySQL 就能将该查询转换为一个常量。
  • 太太太长了,不行,我受不鸟了
    MySQL没有限制单表最大记录数,它取决于操作系统对文件大小的限制。性能由综合因素决定,抛开业务复杂度,影响程度依次是硬件配置、MySQL配置、数据表设计、索引优化。虽然当时查询速度还凑合,随着数据不断增长,有朝一日必定不堪重负。maxconnections是指MySQL实例的最大连接数,上限值是16384,maxuserconnections是指每个数据库用户的最大连接数。不推荐使用外键约束,用应用程序保证数据准确性。不允许执行极度耗时的事务,配合应用程序拆分成更小的事务。索引优化分页查询很重要,如果查询数据量超过30%,MYSQL不会使用索引。单表索引数不超过5个、单个索引字段数不超过5个。
  • 图解 MySQL 索引:B-树、B+树 【建议收藏】
    本文中有关存储引擎请查看MySQL存储引擎-InnoDB和MyISAM索引是什么?索引是帮助MySQL高效获取数据的数据结构。具体细节取决于不同的实现,InnoDB的聚簇索引其实就是在同一个结构中保存了B-Tree索引和数据行。imgB-Tree索引B-Tree能加快数据的访问速度,因为存储引擎不再需要进行全表扫描来获取数据,数据分布在各个节点之中。imgB+Tree索引是B-Tree的改进版本,同时也是数据库索引索引所采用的存储结构。相比B-Tree来说,进行范围查找时只需要查找两个节点,进行遍历即可。Redis使用不当真的可能会导致应用卡死2.面试问烂的 Spring AOP 原理、SpringMVC 过程3.SpringBoot 注解大全,收藏一波!!!
  • MySQL 索引优化分析:为啥你的SQL慢?为啥你建的索引常失效?
    为什么你建的索引常失效?通过本章内容,你将学会MySQL性能下降的原因,索引的简介,索引创建的原则,explain命令的使用,以及explain输出字段的意义。MongoDB是NoSQL中的一种。NoSQL的全称是Not only SQL,非关系型数据库。MySQL是关系性数据库中的一种,查询功能强,数据一致性高,数据安全性高,支持二级索引。这时候需要分析查询慢的原因,一般情况下是程序员sql写的烂,或者是没有键索引,或者是索引失效等原因导致的。考虑到订单数量已经是百万级以上,对MySQL的性能分析也就显得格外重要。通过explain命令可以清楚MySQL是如何处理sql语句的。
  • 如何去写一手好SQL?
    MySQL性能最大数据量抛开数据量和并发数,谈性能都是耍流氓。MySQL没有限制单表最大记录数,它取决于操作系统对文件大小的限制。性能由综合因素决定,抛开业务复杂度,影响程度依次是硬件配置、MySQL配置、数据表设计、索引优化。max_connections是指MySQL实例的最大连接数,上限值是16384,max_user_connections是指每个数据库用户的最大连接数。MySQL会为每个连接提供缓冲区,意味着消耗更多的内存。实施原则相比NoSQL数据库,MySQL是个娇气脆弱的家伙。避免空值MySQL中字段为NULL时依然占用空间,会使索引、索引统计更加复杂。索引优化分页查询很重要,如果查询数据量超过30%,MYSQL不会使用索引。
  • InnoDB架构,一幅图秒懂!
    网上写MySQL架构的文章比较多,写InnoDB架构的文章比较少,今天简单说说InnoDB架构。等各种存储引擎中,InnoDB是使用范围最广的。众多特性让InnoDB备受青睐。缓冲池目的是提升InnoDB性能,加速读请求,避免每次数据访问都进行磁盘IO。细节参见《InnoDB到底支不支持哈希索引》。日志缓冲目的是提升InnoDB性能,极大优化redo日志性能,并提供了高并发与强一致性的折衷方案。主要包括日志与表空间,其结构与原理比InnoDB内存结构更加复杂,如果大家感兴趣,未来再撰文详述。一分钟系列,希望大家对InnoDB架构,以及InnoDB内存结构的四大组件有了更系统性的了解。
  • 了解 MongoDB 看这一篇就够了
    如果对于 MongoDB的发展史感兴趣,可以参考下没有一个技术天生完美,MongoDB 十年发展全纪录这篇文章。更重要的是,默认情况下 MongoDB 并不会对写入的数据做任何schema的校验。此外,MongoDB中字段的类型是固定的、区分大小写、并且文档中的字段也是有序的。BSON 数据类型MongoDB 文档可以使用 Javascript 对象表示,从格式上讲,是基于 JSON 的。MongoDB 采用 ObjectId 来表示主键的类型,数据库中每个文档都拥有一个_id 字段表示主键。
  • C# 8 - Range 和 Index(范围和索引)
    C#8的Range类型而C#8里面我们可以从一个序列里面很简单的提取出来一个子范围组成新的序列。Range类型也可以直接创建Range类型的变量:这段代码的输出结果和上面是一样的。而如果你使用arr[^0]的话就会抛出IndexOutOfRangeException,arr[^0]和arr[arr.Length]是一个意思。组合使用Range和IndexRange和Index经常组合着使用。下面这三种写法的效果是一样的:再次强调,Range的范围包含Start不包含End。其它一些例子:单独使用Range或Index的例子:这个输出结果是5,6,7。Range运算符:..Index类型;从头开始的索引是从0开始的从尾部开始的索引是从1开始的,与序列的长度相关。
  • 史上最详细的一线大厂Mysql面试题详解
    Mixedlevel: 是以上两种level的混合使用,一般的语句修改使用statment格式保存binlog,如一些函数,statement无法完成主从复制的操作,则 采用row格式保存binlog,MySQL会根据执行的每一条具体的sql语句来区分对待记录的日志形式,也就是在Statement和Row之间选择 一种.新版本的MySQL中队row level模式也被做了优化,并不是所有的修改都会以row level来记录,像遇到表结构变更的时候就会以statement模式来记录。
  • SQL 性能优化梳理
    前言本文主要针对的是关系型数据数据库MySql。事务可能读取未提交的数据,造成脏读。被用来设计处理大量短期事务,具有高性能和自动崩溃恢复的特性。MyISAM引擎,不支持事务和行级锁,崩溃后无法安全恢复。2 创建时优化2.1 Schema和数据类型优化整数TinyInt,SmallInt,MediumInt,Int,BigInt 使用的存储8,16,24,32,64位存储空间。使用Unsigned表示不允许负数,可以使正数的上线提高一倍。MySql只能高效的利用索引的最左前缀列。因为MySql的连接和断开都是轻量级的操作,不会由于查询拆分为多次,造成效率问题。group by 按照标识列分组效率高,分组结果不宜出行分组列之外的列。
活跃用户
《中国银行保险报》是中国银行保险监督管理委员会主管唯一工作日报。
专注于.NET Core的技术传播。在这里你可以谈微软.NET,Mono的跨平台开发技术。在这里可以让你的.NET项目有新的思路,不局限于微软的技术栈,横跨Windows,Linux 主流平台
这里有技术、算法、职场、感悟、面经、资源,一线大厂干货,10万 + 程序员都在看,做一个有趣的帮助程序员成长的公众号,每天早上8点20,第一时间与你相约。
《前端剑解》 —— 是由海之林技术团队维护的前端公众号,关注前端技能的发展;【前端面试每日3+1】 —— 365天,每天早上5点发布面试题(html, css, js, 软技能),以面试题来驱动学习,提倡每日学习与思考,每天进步一点!
号主是来自后厂村的十年资深架构师,技术leader,著有两本技术畅销书,多个业界顶级技术大会的特邀演讲嘉宾和出品人。除了分享技术干货,还关注程序员的技术生活、职场晋升、逆袭成长,助力10万+程序员崛起。
Flink/Spark/Hadoop/数仓开发,干货,面试,资料下载,源码解读等
《科技日报》是富有鲜明科技特色的综合性日报,是面向国内外公开发行的中央主流新闻媒体,是党和国家在科技领域的重要舆论前沿,是广大读者依靠科技创造财富、提升文明、刷新生活的服务平台,是中国科技界面向社会、连接世界的明亮窗口。
华为技术有限公司官方微信帐号
每天分享 Java技术栈 干货,路虽远,行则必至。
“早春江上雨初晴,杨柳丝丝夹岸莺。画舫烟波双桨急,小桥风浪一帆轻”,这是机器通过学习中华诗词然后以”早春“为题所写的一首诗。很多人非常恐惧AI的发展对人类的冲击,但我坚信AI会让世界变得更加美好,生活是美好的,所以我们一起,勇敢AI吧!
一个专注侃侃计算机视觉方向的公众号。计算机视觉、图像处理、机器学习、深度学习、C/C++、Python、诗和远方等。
程序员职业规划:职场晋升之路;探讨程序员转化转管理之路。程序员学习管理之道:团队管理、项目管理、管理工具的推荐和使用经验。
乔哥是百度java工程师,专注Java相关技术:Java面试、Spring全家桶、微服务、Mysql、集群、分布式、中间件、Linux、网络、多线程等,致力于Java全栈开发!
西安交大品牌讲座“学而讲坛”创始人和负责人,致力于打造一个跨界融合的学术共同体。北大文学博士,西安交大国家大学生文化素质教育基地副主任,人文学院高培中心主任,著有《陕西文化产业实战研究》、《视觉素养导论》、《艺术导论》、《读图范式》等。
专注于分享互联网技术文章。笔者待过BAT等一线互联网公司,文笔流畅,酷爱写作与编码,期待你的关注!