• 关于

    去oracle化

    的搜索结果

回答

回 1楼(jesuiszb) 的帖子 嗯 以前项目上  服务器上装ORACLE的时候 有个需要图形化的 不想去机房 就用VNC的

ap1253j8y 2019-12-02 00:36:03 0 浏览量 回答数 0

回答

其实从去年已经隐隐约约感觉到数据库的有变化,只是没有想到变得这么快。今年的一些事情实实在在地给了某些数据库重击,如果以前去某数据库还是喊喊,然后该用还用,今年从传统领域刮起的去某数据库的风,已经开始了,并且后面的乌云密布也看得见。 最近看一篇国外的开源产品提供厂商的一篇文字,主要是在询问了他的几百位客户后得出了下图中的2019年数据库的使用趋势。 从图中可以看出,MySQL以38.9%的使用率高居榜首,其次是MongoDB(24.6%)、PostgreSQL(17.4%)、Redis(8.4%)和Cassandra(3.0%)。在这些数据库中,Oracle仅占1.8%,而CouchDB、Berkeley DB、Microsoft SQL Server、Redshift、Firebase、Elasticsearch 整合后的影响力和用户的总和仅为2.4%。 但该调查报告却与DB-engine排名趋势流行度报告大相径庭,Oracle数据库在此报告中排名第一,不过笔者认为,任何文字都是可能是偏颇或有倾向性的,每个人看完后都可能有自己的想法,或认同或反对,就如同最近最热的一句话“人心中的成见是一座大山,任你怎么努力休想搬动”。 MySQL 仍然是排名第一的免费开源数据库,占开源数据库使用量的 30% 以上。这并不奇怪,根据 DB-Engines,MySQL 多年来一直保持在这个位置。根据笔者多年来的从业经验,我认为MySQL数据库确实配得上这个排名,原因如下。 1.完全开源 MySQL最强大的优势之一在于他的数据库管理系统(DBMS,Database Management System)是一个开源系统。当然,开源并不意味着免费,它还是有许多付费功能。但是开源的特点给予用户可以根据自己需要修改DBMS的自由。 MySQL采用了GPL(General Public License),这意味着授权给用户可以阅读,修改和优化源代码,这样即使是免费版的MySQL的功能也足够强大。这也是MySQL如此受欢迎的原因之 一。 2.快速更新和用户友好 在其他数据库(例如Orcale、MSSQL Sever)更新缓慢的时候,MySQL很少让他的用户等待。每当新的版本出来之后,MySQL都会成为大多数服务器的主要数据库。Linux web服务器已经成为现在web服务器的主流,MySQL在linux服务器上面也得到了广泛的应用。 3.WebsitePanel,phpMyAdmin 和MySQl的黄金组合 对于初学者来说,通过虚拟主机商提供的websitepanel控制面板学习MySQL是一个很不错的方法。用户不仅可以观看很多视频教程来学习使用 MySQL,还可以使用PhpMyAdmin通过web方式管理数据库。 PostgreSQL 以 13.4% 的开源数据库用户比例位居第二,紧随其后的是 MongoDB,占 12.2%,位列第三。 如果你经常光顾某些网站,或者大型公众号,你应该知道今年最热的事情有两个,postgresql和大数据,今年算是postgresql在中国的开始发展的元年,知道的人和使用的人也越来越多。 根据DB-engine数据库流行榜发布的数据显示,Oracle与MySQL与去年相比都产生了一定的退步,唯独postgresql呈现上升趋势,比去年同月份提高了85.18%,这进一步说明数据库领域正在涌现出更多的新生力量,与之前将所有鸡蛋都放在一个篮子里的传统策略相比,IT行业的工作者正在使用多种数据库来支持他们的产品,多数据库类型的使用在过去10年出现了爆炸式增长。 在我们的调查中,几乎有一半实际上使用不止一种类型的数据库来支持他们的应用程序,而不是单个数据库,使用多个数据库的比例为44.3%,使用一个数据库的比例为55.7%,他们喜欢的数据库组合如下。 现在,让我们仔细研究一下在单个应用程序中最常用的数据库类型。 在下面的图表中,左边列中的数据库表示该数据库类型的样本量,上面列出的数据库表示与该数据库类型组合的百分比。蓝色显示的单元格表示 100% 的部署组合,而黄色表示 0% 的组合。 因此,如下面的数据库组合热图所示,MySQL 是我们与其他数据库类型结合最频繁的数据库。但是,虽然其他数据库类型经常与 MySQL 一起使用,但这并不意味着 MySQL 部署总是使用另一种数据库类型。这可以在 MySQL 的第一行看到,其颜色为浅蓝到黄色,相比之下,MySQL 第一列的颜色要和表示 100% 组合的蓝色的匹配度高许多。 用黑色边框突出显示的单元格表示仅利用这一种数据库类型的部署,其中仅使用 MySQL 的单元格占部署总数的 23%。 其实,这些数据也比较精准的反映了国内的情况,从2005年开始,IT企业在数据库的发展方向上就已经有了一些变化。 2007年开始阿里巴巴的IT开销史无前例,一度成为IBM、Oracle中国的标杆客户,淘宝、阿里巴巴B2B和支付宝等公司,98%以上的软件系统和业务都是采用Oracle数据库提供数据服务。2009年淘宝更是上了全球排名前几位的大RAC集群,据说当年有16个节点。每天早上CPU还是跑到98%。换句话来说,三年几千万买Oracle产品+服务也没办法支撑阿里成长的速度,只能开启自研模式,于是就有了Oracle全面转向MySQL的进程。 拆分Oracle数据库+Hadoop其实也可以撑一撑,但是这样的话,还要向Oracle购买更多的License(再花几千万,不是没钱,是即便花钱也不能彻底解决问题)。因此,阿里巴巴B2B将中文站压力和数据容量最大的Offer数据库,成功从Oracle数据库+IBM小型机+EMC2存储设备,迁移到MySQL数据库+PC Server的模式,所以淘宝2013年下线了最后一个Oracle,2014年支付宝交易替换了Oracle,2016年支付宝总账全面用OceanBase替换Oracle。 发展趋势: 1.“去Oracle化”。一方面是Oracle采用scale up而不是scale out的方案;另外一个重要原因是价格。网易和阿里巴巴都曾经以Oracle作为主要的数据库解决方案,投资几千万来采购License。阿里巴巴曾经还自称是互联网企业中Oracle的最大用户。Oracle最大的优势是运维简单,应用开发方便,但是和昂贵的价格相比,这一点不再具备吸引力。 2.优化MySQL数据库。这些互联网企业采用了大量的MySQL服务器集群,最大集群在150台服务器左右。承载了包括博客、电子商务等应用。采用的优化包括: 传统的SQL优化,如减少某个查询涉及到的列,控制索引数量等 闪存介质(SSD或者Flash卡)。这是几乎所有互联网企业都采用的方法,由于测试场景各不相同,因此没法比较谁家的方案更好。大体上分成直接使用闪存介质作为存储系统;优化闪存介质访问方式进一步优化 设计MySQL存储引擎 3.NoSQL数据库。NoSQL对应用养发提出了较高的要求,在项目中不是那么容易推广,一致性要求被放松,但是“原子性”支持需要被保证。一般是为了满足高并发需要才引入。如盛大采用MongoDB,淘宝自研了Tair数据库(已经开源) 4.分布式数据库。众所周知,使用不同的SQL优化与执行方式,数据库的访问性能可能会存在上千上万倍的差距。计算存储分离的核心思想便是在数据存储层面进行一体化存储,而计算层面则有效利用每种执行引擎的特点,针对不同的业务场景进行选择和优化。 所以,如果具有超强的研发团队和运维团队,在云时代还是有机会替代Oracle的,我们也看到伴随着人口红利,在软件开发领域的我国实力已今非昔比,大部分企业的 “去IOE”的进程更多的是自发的因系统架构优化而进行,同时各种数据库技术与产品也蓬勃发展,所以,在技术上看Oracle并非不能取代,更多的是出于综合成本(改造与建设成本、分享)的考量,需要的是时间和意志。 一千个人眼里就有一千个哈姆雷特,在每个开发者和企业的眼中,只有适合自己的数据库才是最好的。

问问小秘 2020-01-06 14:58:56 0 浏览量 回答数 0

问题

activiti 部署在oracle多用户下不能自动建表,求解决??报错

爱吃鱼的程序员 2020-06-22 11:24:43 0 浏览量 回答数 1

阿里云高校特惠,助力学生创业梦!0元体验,快速入门云计算!

学生动手场景应用,快速了解并掌握云服务器的各种新奇玩法!

问题

如何分析一个数据库是否能做到不丢数据?

mq4096 2019-12-01 21:54:00 2507 浏览量 回答数 0

回答

Linux开源稳定免费 Linux相信大多数小伙伴都知道,一个开源稳定免费的操作系统,这些特征都是相对于我们熟悉的Windows系统而言的。 今天我们来说一下学数据库的人为什么也要学Linux? 很多刚学习数据库的小伙伴第一次接触数据库应该都是微软的Access或者SQL Server系列。 它的界面友好,操作简单,跟着书本上多操作几次就会了。这容易给我们一个错觉:所有的数据库应该都是这样运行在Windows上的! 大部分数据库软件其实都运行在Linux上的,而且基本都是命令界面,没有友好的图形化界面。 Linux支持大部分数据库软件 经常会有一些教程是让我们记命令大全之类的,原因就在这里,命令界面是没有相关操作命令的提示符的。 而工作中我们常用的数据库Mysql,Oracle都是运行在Linux服务器上的,即使是微软的SQL Server也在2016版以后也开始支持Linux操作系统。 在这样一个现实面前,我们还是要有一点Linux的基础知识,至少你需要知道如何在Linux系统下安装数据库,启动数据库,连接数据库等等。 有感于最近公司Oracle数据库出现故障,会Linux真的会让你的价值翻倍。未来如果你有幸转行做DBA,那Linux更是需要你去深究的一个操作系统,它里面的学问真的太多了,说句不客气的话,一个不擅长Linux系统的DBA不是一个好DBA。 此外好多开发工具也支持Linux但不支持Windows,我所了解的一款数据库测试工具sysbench是如此。这只是其中一个例子,当你深入研究会发现,实际工作中的好多工具必须在Linux环境才能运行。所以学习和使用Linux是作为开发人员的必修课。

茶什i 2019-12-31 10:11:52 0 浏览量 回答数 0

回答

请容我用 2015年 PostgreSQL全国用户大会(大象会) 的嘉宾演讲目录回复你!!Postgres ConfChina2015_阿里云_曾文旌_PG9.4逻辑日志同步方案介绍_v2.pdfx.pdfPostgres ConfChina2015_阿里云_窦贤明_index_adviser.pdfPostgres ConfChina2015_阿里云_周正中(德哥)_一位PGer的安全修养.pdfPostgres ConfChina2015_成都文武信息_朱贤文_PostgreSQL存储安全和存储性能规划.pdfPostgres ConfChina2015_瀚高_卢健_异构数据向PostgreSQL实时同步.pdfPostgres ConfChina2015_红手指_黄坚_新型BI架构思考及PG中的实现.pdfPostgres ConfChina2015_华东师范大学_王晓玲_PG的window分析函数优化.pdfPostgres ConfChina2015_华为_叶涛_PostgreSQL在最新硬件上的性能优化-postgres2015.pdfPostgres ConfChina2015_莲子数据金华峰_大数据下的状态机实现.pdfPostgres ConfChina2015_去哪儿网_李海龙_Qunar的PostgreSQLHA探索及日常运维.pdfPostgres ConfChina2015_上容_李雨德_上容旋极空间编码数据库引擎.pdfPostgres ConfChina2015_上容_田军_上容数据库替代Oracel国产化之路.pdfPostgres ConfChina2015_神州飞象_权宗亮_存储过程加密实现.pdfx.pdfPostgres ConfChina2015_沃趣科技_唐成(osdba)_PostgreSQL实例恢复与热备份技术内幕.pdfPostgres ConfChina2015_武汉大学_彭煜玮_高校PG人才培养的总结与思考.pdfPostgres ConfChina2015_张宇_国家电网Postgres应用实践分享.pdfPostgres ConfChina2015_赵振平_数据库稳定性_选型与去IOE.pdfPostgres ConfChina2015_浙江移动_francs_谭峰_浙江移动PostgreSQL-XC应用实践.pdfPostgres ConfChina2015_中国平安_梁海安_Postgresql的平安本地化.pdfPostgres ConfChina2015_中国平安_王鹏冲_平安数据库的PG之路.pdfPostgres ConfChina2015_中兴软创_刘泉_PostgreSQL去O实战.pdfx.pdfPostgres ConfChina2015_Alexander_DTM.pdfPostgres ConfChina2015_KaiGai_PGStrom.pdfx.pdfPostgres ConfChina2015_Mason-Postgres_XL.pdfPostgres ConfChina2015_Oracle_那海蓝蓝_李海翔_PostgreSQL视图优化.pdfPostgres ConfChina2015_Pivotal_姚延栋_Greenplum架构分析及开源历程.pdfPostgres ConfChina2015_Suzuki-PostgreSQL_ScaleOut.pdfPostgres ConfChina2015_Tatsuo-pgpool-II-3.5.pdfPostgres ConfChina2015_Victor_Handling_60million_likes_per_day_in_PostgreSQL.pdf

萧少聪scott 2019-12-02 01:28:51 0 浏览量 回答数 0

回答

先申明概念: 1、悲观锁,正如其名,它指的是对数据被外界(包括本系统当前的其他事务,以及来自外部系统的事务处理)修改持保守态度,因此,在整个数据处理过程中,将数据处于锁定状态。悲观锁的实现,往往依靠数据库提供的锁机制(也只有数据库层提供的锁机制才能真正保证数据访问的排他性,否则,即使在本系统中实现了加锁机制,也无法保证外部系统不会修改数据)。 2、乐观锁( Optimistic Locking ) 相对悲观锁而言,乐观锁机制采取了更加宽松的加锁机制。悲观锁大多数情况下依靠数据库的锁机制实现,以保证操作最大程度的独占性。但随之而来的就是数据库性能的大量开销,特别是对长事务而言,这样的开销往往无法承受。而乐观锁机制在一定程度上解决了这个问题。乐观锁,大多是基于数据版本( Version )记录机制实现。何谓数据版本?即为数据增加一个版本标识,在基于数据库表的版本解决方案中,一般是通过为数据库表增加一个 “version” 字段来实现。读取出数据时,将此版本号一同读出,之后更新时,对此版本号加一。此时,将提交数据的版本数据与数据库表对应记录的当前版本信息进行比对,如果提交的数据版本号大于数据库表当前版本号,则予以更新,否则认为是过期数据。 所以悲观锁和乐观锁最大的区别是是否一直锁定资源,悲观锁在事物的全流程锁定数据,乐观锁不锁定数据(用读写锁是阻塞事物,而用乐观锁则会导致回滚。这个是一种事物冲突后的不同锁的表象)。乐观锁的最大特点是在最后检查数据是否被修改,如果已被别人修改过,则回滚数据,避免脏数据。至于事物是否冲突和加锁没有直接联系,该冲突的还是会冲突,不管你加悲观锁和乐观锁都会冲突。 悲观锁和乐观锁都是为了解决丢失更新问题或者是脏读。悲观锁和乐观锁的重点就是是否在读取记录的时候直接上锁。悲观锁的缺点很明显,需要一个持续的数据库连接,这在web应用中已经不适合了。 一个比较清楚的场景 下面这个假设的实际场景可以比较清楚的帮助我们理解这个问题: a. 假设当当网上用户下单买了本书,这时数据库中有条订单号为001的订单,其中有个status字段是’有效’,表示该订单是有效的; b. 后台管理人员查询到这条001的订单,并且看到状态是有效的 c. 用户发现下单的时候下错了,于是撤销订单,假设运行这样一条SQL: update order_table set status = ‘取消’ where order_id = 001; d. 后台管理人员由于在b这步看到状态有效的,这时,虽然用户在c这步已经撤销了订单,可是管理人员并未刷新界面,看到的订单状态还是有效的,于是点击”发货”按钮,将该订单发到物流部门,同时运行类似如下SQL,将订单状态改成已发货:update order_table set status = ‘已发货’ where order_id = 001 观点1:只有冲突非常严重的系统才需要悲观锁; 分析:这是更准确的说法; “所有悲观锁的做法都适合于状态被修改的概率比较高的情况,具体是否合适则需要根据实际情况判断。”,表达的也是这个意思,不过说法不够准确;的确,之所以用悲观锁就是因为两个用户更新同一条数据的概率高,也就是冲突比较严重的情况下,所以才用悲观锁。 观点2:最后提交前作一次select for update检查,然后再提交update也是一种乐观锁的做法 分析:这是更准确的说法; 的确,这符合传统乐观锁的做法,就是到最后再去检查。但是wiki在解释悲观锁的做法的时候,’It is not appropriate for use in web application development.’, 现在已经很少有悲观锁的做法了,所以我自己将这种二次检查的做法也归为悲观锁的变种,因为这在所有乐观锁里面,做法和悲观锁是最接近的,都是先select for update,然后update 除了上面的观点1和观点2是更准确的说法,下面的所有观点都是错误的****** 观点3:这个问题的原因是因为数据库隔离级别是uncommitted read级别; 分析:这个观点是错误的; 这个过程本身就是在read committed隔离级别下发生的,从a到d每一步,尤其是d这步,并不是因为读到了未提交的数据,仅仅是因为用户界面没有刷新[事实上也不可能做自动刷新,这样相当于数据库一发生改变立刻要刷新了,这需要监听数据库了,显然这是简单问题复杂化了]; 观点4:悲观锁是指一个用户在更新数据的时候,其他用户不能读取这条记录;也就是update阻塞读才叫悲观锁; 分析:这个观点是错的; 这在db2背景的开发中尤其常见;因为db2默认就是update会阻塞读;但是这是各个数据库对读写的时候上锁的并发处理实现不一样。但这根本不是悲观锁乐观锁的区别。Oracle可以做到写不阻塞读仅仅是因为做了多版本并发控制(Multiversion concurrency control), http://en.wikipedia.org/wiki/Multiversion_concurrency_control;但是在Oracle里面,一样可以做乐观锁和悲观锁的控制。这本质上是应用层面的选择。 观点5:Oracle实际上用的就是乐观锁 分析:这个观点是错的; 前面说了,Oracle的确可以做到写不阻塞读,但是这不是悲观锁和乐观锁的问题。这是因为实现了多版本并发控制。按照wiki的定义,悲观锁和乐观锁是在应用层面选择的。Oracle的应用只要在第二步做了select for update,就是悲观锁的做法;况且Oracle在任何隔离级别下,除了分布式事务两阶段提交的短暂时间,其他所有情况下都不存在写阻塞读的情况,如果按照这个观点的话那Oracle已经不能做悲观锁了-_- 观点6:不需要这么麻烦,只需要在d这步,最后提交更新的时候再做一个普通的select检查一下就可以;[就是double check的做法] 分析:这个观点是错的。 这个做法其实在 http://www.hetaoblog.com/database-lost-update-pessimistic-lock/,’3. 传统悲观锁做法的变通’这节已经说明了,如果要这么做的话,仍然需要在最后提交更新前double check的时候做一个select for update, 否则select结束到update提交前的时间仍然有可能记录被修改; 观点7:应该尽可能使用悲观锁; 分析:这个观点是错的; a. 根据悲观锁的概念,用户在读的时候(b这步)就会将记录锁住,直到更新结束的时候才会将锁释放,所以整个锁的过程时间比较长; b. 另外,悲观锁需要有一个持续的数据库连接,这在当今的web应用中已经几乎不存在;wiki上也说了, 悲观锁‘is not appropriate for use in web application development.’ 所以,现在大部分应用都应该是乐观锁的; 答案来源于网络

养狐狸的猫 2019-12-02 02:17:37 0 浏览量 回答数 0

回答

你看的高性能mysql那本书么?我也测试过,要看下你的代码例子,如果你A事务insert提交了, B事务还是可以读取到的,如果你B在A提交之前先select一下,然后就不会读到了,一致性读  consistent read######你试试在同两个session窗中更改不同隔离级别测试,RC,RR都是乱的,RR有时候不能保证幻读,RC可重复读。set global transaction isolation level read committed或者repeatable read######Percona技术团队编写Taobao技术团队翻译的 高性能MySQL 开篇第一章就提到了ACID中的事务隔离性Isolation. my.cnf配置: [mysqld] transaction-isolation = REPEATABLE-READ 可选: READ-UNCOMMITTED(未提交读):其他事务可以看到当前事务中没有提交的修改,会导致脏读:一个事务读到另外一个事务还没有提交的数据. READ-COMMITTED(提交读):大多数数据库默认的隔离级别,避免了脏读,但会导致不可重复读:两次执行同样的查询,可能得到不一样的结果. REPEATABLE-READ(可重复读,默认):实现可重复读,保证同一事务多次读取同样的记录的结果是一致的.但仍避免不了幻读,不过InnoDB用多版本并发控制MVCC解决了幻读的问题. SERIALIZABLE(可串行化):通过强制事务串行化,避免出现幻读,简单说就是在读取的每一行数据上都加锁,所以可能会导致大量的超时和锁争用的问题,实际需要并发的场景很少使用. 所谓幻读,指的是当某个事务在读取某个范围的记录时,另外一个事务又在该范围内插入了新的记录. 当之前的事务再次读取该范围内的记录时,会产生幻行. InnoDB的MVCC,是通过在每行记录后保存两个隐藏的列来实现的. 这两个列,一个保存了行的创建时间,一个保存了行的过期时间(或删除时间). 其内存储的并不是实际的时间值,而是系统版本号. 每开始一个新的事务,系统版本号都会自动递增. 事务开始时刻的系统版本号会作为事务的版本号, 用来和查询到的每行记录的版本号进行比较. 下面看一下在默认的REPEATABLE-READ(可重复读)事务隔离级别下,MVCC的具体操作: ######回复 @炁月 : 同学,关于MVCC的版本可见性规则 你可以去查查资料了解下,并不是你说的那样,然后你再用show engine innodb status 看下事务那栏的信息,它会告诉你当前活跃事务 版本的可见性。。######你这个逼装的有弹性、有深度、有湿度,水也不少,可以说是非常漂亮、滑爽。但是少了那么一丝朴实,没有给我焕然一新的感觉,如果再加入那么一丝朴实的话,这个逼就无人能挡了,我希望在国际装逼总决赛的舞台上,看到焕然一新的你,好吗?我给你YES。 --via struct######eechen 自己对很多事情不了解就开始胡说八道,还不听对方的话。以德报怨,何以报德?我们尊重他,他却只会更加猖狂,还是先教会他社会的法则吧!via MikeManilone######OSC最讨厌的人: @eechen ,同意的右下角。via Bery http://my.oschina.net/bery/tweet/9658008######回复 @eechen : 不是什么东西都能粗略的呀,你这代码,真要拿来用的时候,那多出来的数据会加入你后续排序和计算欧几里得距离的过程,影响性能的呀。而且这种影响是毫无意义的浪费,要是写php都像你这么浪费,谁还敢用php. --via 张亦俊###### mvcc只是有版本号,具体幻不幻读得看实现。 要实现不幻读,需要加锁,影响并发性能,所以数据库在默认情况下允许幻读也是可以的。如果需要避免它,可以人工加锁select for update/lock table等 ######http://www.postgres.cn/docs/9.3/transaction-iso.html 。在PostgreSQL里,你可以请求四种可能的事务隔离级别中的任意一种。但是在内部, 实际上只有三种独立的隔离级别,分别对应读已提交,可重复读和可串行化。如果你选择了读未提交的级别, 实际上你获得的是读已提交,并且在PostgreSQL的可重复读实现中,幻读是不可能的,######回复 @Ambitor : 不过这种场景比较少,比如每增加一行,在触发器更新下统计结果。如果仅用数据库的mvcc,在统计的时候,如果有其它相关的DML,虽然确实没有幻读,但实际统计的结果是过时的,如果有其它计算需要依赖这个统计,就会造成错误。######回复 @Ambitor : 这样确实能在定义上避免幻读,但是实际使用的时候,多行操作如果不阻塞其它的DML语句,可能会出现过时的结果,所以一般都手动加锁来避免数据错误。###### 如果当前隔离级别 没有幻读 也就不是 repeatable-read了(不符合他的定义了) ###### Mysql从来没有实现过 MVVC######回复 @宏哥 : 我不是很精通这个,就说一些我观察到的片面,oracle是可以通过undo找回以前时间节点被DML的记录,如果开启archive log,就能找回任意时间节点的,但是唯独一个例外,如果一个表被DDL过,archive就丢失了。######回复 @宏哥 : oracle和mysql都不能回滚,都是隐式提交的 [抠鼻]######回复 @Ambitor : 查了一下, oracle不能回滚DDL######回复 @乌龟壳 : 查了一下,, 确实不可以, 好奇怪######回复 @宏哥 : 怎么回滚? [抠鼻]######那你为什么要用mysql?###### 引用来自“dy810810”的评论那你为什么要用mysql? 哈哈, mysql 和流感差不多, 搞web不来几次,都不行######就是因为mvcc,才有的幻读######mysql可重复读隔离模式下有间隙锁,但是还是没有完全解决幻读的问题.######这篇文章讲的还不错http://blog.sina.cn/dpool/blog/s/blog_499740cb0100ugs7.html?vt=4######呵呵,为嘛 可以解释清楚么?######MVCC是为了解决重复读的问题的,幻读是另外一回事了,因为每个DML操作都操作的是最新的page,而不会去更新MVCC中的undo快照去update,所以同时操作最新的page 只有锁能解决幻读问题啊。幻读其实是并发问题。而MVCC为什么能解决重复读,是因为当最新的page被某个事务锁了,那么另外一个事务在读的时候只会读之前当前可见最新的版本,并且始终读的是这个page 所以可以重复读###### MVCC也可以通过一些办法解决幻影读的问题,例如select之后将读取的范围映射为一个新的数据;这样当有另外一个事务去修改前事务查询范围时候,会检查到写冲突; 对于解决幻影读实现序列读的做法,mysql好像是基于严格的2PL协议做的,oracle好像是利用上面的办法解决; 其实不用上述方法,业务上在表定义的时候规避也是可以的,即一个事务中的操作如果存在因果关系,则原因为读的操作,只读一个记录,不读多条记录。

kun坤 2020-06-08 11:16:08 0 浏览量 回答数 0

回答

我不太喜欢外键,原因:1.程序逻辑,完整性,我会在存储过程或包等地方做严谨的判断;2.性能问题,这是我最不喜欢用的关键原因,比如一个业务流水表,频繁插入数据,如果这个表身上有3外键,那么每次插入一条,就必须对这3个外键对应的3个表做相应的查找判断有无对应数据,如果这3个表也很大,那就这3个表的判断时间就很常,虽然外键指向的关联表的字段肯定是索引,但是我觉得很多时候,这样的判断本来就在程序里控制好了,通过外键再判断一次,就是降低性能;而且其实有的地方判不判断也无所谓的,但是用了外键,就必须化时间去判断,无论oracle内部多么优化外键对于数据的检索速度,它总是一个不小的消耗;3.维护麻烦,很多公司的软件都是定制的,这种定制的东西,随意性相对较大,项目开发实施过程中,需要经常对表修修补补;还有就是业务逻辑有bug或者其他情况,需要经常手工维护数据,有错综复杂的外键关联着,很是麻烦;4.不灵活,外键定死了两个表之间数据的先后生成关系,最常见的是单据主从表,有的时候,在生成单据的时候,是先生成明细,再生成主表;如果钉死了外键,这个就没法实现;当然有些关键的业务,确实需要外键;为什么说这个话题,我今天把项目数据库建立好后,用了很少的外键,周围同事说数据不严谨,需要错综复杂的那些相同字段名的外键都建立起来,这个我很不情愿;比如这个数据库一共100个表,按他们的想法,外键就可能有300个;我晕,太教条主义了;如果说让我建300个索引,我很乐意,因为提高运作效率的,而外键只是检测严谨性,对数据库的运作效率只有降低,没有任何提高的可能性;其实这只是设计习惯的问题 ,有兴趣大家随便聊聊自己的习惯。

蛮大人123 2019-12-02 01:43:29 0 浏览量 回答数 0

问题

从jQuery到Serverless,前端十四年挖了多少坑?

茶什i 2020-01-16 18:37:44 42 浏览量 回答数 1

问题

UNIX/Linux系统取证之信息采集案例

opensiem 2019-12-01 21:46:20 2034 浏览量 回答数 1

问题

爱上阿里云

南开阿当 2019-12-01 21:58:23 8271 浏览量 回答数 0

回答

杨晓峰认为这一情况也正常:Java8 在可预见的将来依然会是生产的主体,放在晚期大众阶段是合理的。但是对于很多头部厂商来说,Java11 或者再后续版本,有可能陆续出现一定规模的生产化部署。他认为这样的趋势只会在头部公司发生,如果一个公司对大堆栈 GC 能力、延迟 SLA 等方面要求没有那么高,就没有足够动力去做相关升级,也未必有技术力量解决版本评估、兼容性修正等现实问题。所以结论就是:Java11 处于早期采用者阶段。 对此黄飞补充:也正是因为 Java11 处于早期采用者阶段,因此相关的资料较少,遇到问题会有比较高的学习成本,例如 JFR 对 11 的支持,JMC 对 Java11 的分析能力较弱。 而对于 Java 13,小马哥认为该版本在新 GC 算法的提升以及 Socket 实现上的变化还是非常令⼈期待的,因此 Java 13 排在创新者之列。 对于 Java 的升级,Oracle 宣布从 Java 9 开始每半年将更新一个 Java 大版本——Java 11 是长期支持(Long-Term -Support, LTS)版本,Java 9、10 则成了过渡版本(non‑LTS),因此,陈楚晖不建议用户在生产中使用 Java 9、10。在他看来,小版本升级相对风险是比较小的,而大版本变更则会有可能需要更改大量的代码,这也是为什么这么多人还在坚持用 Java8,而不去更新 Java 11、12、或者 13 的原因。 对于开发者升级 Java 动力不足的原因,李三红的解释更为详细,他认为有两个原因: 敏捷的基础底层架构对软件升级的支持,企业对底层架构的重视程度也是 Java 升级的一个很关键原因。中国的企业业务发展都很快,但是其实很多对底层架构的支持和重视是不足够的。底层架构是否在企业内部被统一强管控,是否很容易支持不同软件版本的灰度,并能通过有效的预发测试,覆盖软件升级不兼容等带来的不确定性,这都考验着软件升级的难度。 另外一点,如果企业享受不到技术升级带来的红利,包括性能、编程效率等多方面提升,势必也影响升级的积极性。

游客pklijor6gytpx 2019-12-02 03:11:35 0 浏览量 回答数 0

问题

SDCC 2016大数据技术架构实战峰会(杭州站)

活动家2016 2019-12-01 21:40:27 4666 浏览量 回答数 0

问题

干货分享:DBA专家门诊一期:索引与sql优化问题汇总

xiaofanqie 2019-12-01 21:24:21 74007 浏览量 回答数 38

问题

专注行业把力使在刀刃上

hua2012h 2019-12-01 20:14:07 4405 浏览量 回答数 0

回答

回2楼啊里新人的帖子 在日常的业务开发中,常见使用到索引的地方大概有两类: 第一类.做业务约束需求,比如需要保证表中每行的单个字段或者某几个组合字段是唯一的,则可以在表中创建唯一索引; 比如:需要保证test表中插入user_id字段的值不能出现重复,则在设计表的时候,就可以在表中user_id字段上创建一个唯一索引: CREATE TABLE `test` (   `id` int(11) NOT NULL AUTO_INCREMENT,   `user_id` int(11) NOT NULL,   `gmt_create` datetime DEFAULT NULL,   PRIMARY KEY (`id`),   UNIQUE KEY `uk_userid` (`user_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 ; 第二类.提高SQL语句执行速度,可以根据SQL语句的查询条件在表中创建合适的索引,以此来提升SQL语句的执行速度; 此过程好比是去图书找一本书,最慢的方法就是从图书馆的每一层楼每一个书架一本本的找过去;快捷一点的方法就是先通过图书检索来确认这一本书在几楼那个书架上,然后直接去找就可以了;当然创建这个索引也需要有一定的代价,需要存储空间来存放,需要在数据行插入,更新,删除的时候维护索引: 例如: CREATE TABLE `test_record` (   `id` int(11) NOT NULL AUTO_INCREMENT,   `user_id` int(11) NOT NULL,   `gmt_create` datetime DEFAULT NULL,   PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=5635996 DEFAULT CHARSET=utf8 该表有500w的记录,我需要查询20:00后插入的记录有多少条记录: mysql> select count(*) from test_record where gmt_create>'2014-12-17 20:00:00'; +----------+ | count(*) | +----------+ |        1 | +----------+ 1 row in set (1.31 sec) 可以看到查询耗费了1.31秒返回了1行记录,如果我们在gmt_create字段上添加索引: mysql> alter table test_record add index ind_gmt_create(gmt_create); Query OK, 0 rows affected (21.87 sec) Records: 0  Duplicates: 0  Warnings: 0 mysql> select count(*) from test_record where gmt_create>'2014-12-17 20:00:00'; +----------+ | count(*) | +----------+ |        1 | +----------+ 1 row in set (0.01 sec) 查询只消耗了0.01秒中就返回了记录. 总的来说,为SQL语句(select,update,delete)创建必要的索引是必须的,这样虽然有一定的性能和空间消耗,但是是值得,尤其是在大并发的请求下,大量的数据被扫描造成系统IO和CPU资源消耗完,进而导致整个数据库不可服务. ------------------------- 怎么学好数据库是一个比较大题目,数据库不仅仅是写SQL那么简单,即使知道了SQL怎么写,还需要很清楚的知道这条SQL他大概扫描了多少数据,返回多少数据,是否需要创建索引。至于SQL优化是一个比较专业的技术活,但是可以通过学习是可以掌握的,你可以把一条sql从执行不出来优化到瞬间完成执行,这个过程的成就感是信心满满的。学习的方法可以有以下一些过程:1、自己查资料,包括书本,在线文档,google,别人的总结等等,试图自己解决2、多做实验,证明自己的想法以及判断3、如果实在不行,再去论坛问,或者问朋友4、如果问题解决了,把该问题的整个解决方法记录下来,以备后来的需要5、多关注别人的问题,或许以后自己就遇到了,并总是试图去多帮助别人6、习惯从多个方面去考虑问题,并且养成良好的总结习惯 下面是一些国内顶级数据库专家学习数据库的经验分享给大家: http://www.eygle.com/archives/2005/08/ecinieoracleouo.html 其实学习任何东西都是一样,没有太多的捷径可走,必须打好了坚实的基础,才有可以在进一步学习中得到快速提高。王国维在他的《人间词话》中曾经概括了为学的三种境界,我在这里套用一下: 古今之成大事业、大学问者,罔不经过三种之境界。"昨夜西风凋碧树。独上高楼,望尽天涯路。"此第一境界也。"衣带渐宽终不悔,为伊消得人憔悴。"此第二境界也。"众里寻他千百度,蓦然回首,那人却在灯火阑珊处。"此第三境界也。 学习Oracle,这也是你必须经历的三种境界。 第一层境界是说,学习的路是漫漫的,你必须做好充分的思想准备,如果半途而废还不如不要开始。 这里,注意一个"尽"字,在开始学习的过程中,你必须充分阅读Oracle的基础文档,概念手册、管理手册、备份恢复手册等(这些你都可以在http://tahiti.oracle.com 上找到);OCP认证的教材也值得仔细阅读。打好基础之后你才具备了进一步提升的能力,万丈高楼都是由地而起。 第二层境界是说,尽管经历挫折、打击、灰心、沮丧,也都要坚持不放弃,具备了基础知识之后,你可以对自己感兴趣或者工作中遇到的问题进行深入的思考,由浅入深从来都不是轻而易举的,甚至很多时候你会感到自己停滞不前了,但是不要动摇,学习及理解上的突破也需要时间。 第三次境界是说,经历了那么多努力以后,你会发现,那苦苦思考的问题,那百思不得其解的算法原理,原来答案就在手边,你的思路豁然开朗,宛如拨云见月。这个时候,学习对你来说,不再是个难题,也许是种享受,也许成为艺术。 所以如果你想问我如何速成,那我是没有答案的。 不经一番寒彻骨,哪得梅花扑鼻香。 当然这三种境界在实际中也许是交叉的,在不断的学习中,不断有蓦然回首的收获。 我自己在学习的过程中,经常是采用"由点及面法"。 当遇到一个问题后,一定是深入下去,穷究根本,这样你会发现,一个简单的问题也必定会带起一大片的知识点,如果你能对很多问题进行深入思考和研究,那么在深处,你会发现,这些面逐渐接合,慢慢的延伸到oracle的所有层面,逐渐的你就能融会贯通。这时候,你会主动的去尝试全面学习Oracle,扫除你的知识盲点,学习已经成为一种需要。 由实践触发的学习才最有针对性,才更能让你深入的理解书本上的知识,正所谓:" 纸上得来终觉浅,绝知此事要躬行"。实践的经验于我们是至为宝贵的。 如果说有,那么这,就是我的捷径。 想想自己,经常是"每有所获,便欣然忘食", 兴趣才是我们最好的老师。 Oracle的优化是一门学问,也是一门艺术,理解透彻了,你会知道,优化不过是在各种条件之下做出的均衡与折中。 内存、外存;CPU、IO...对这一切你都需要有充分的认识和相当的了解,管理数据库所需要的知识并不单纯。 作为一个数据库管理人员,你需要做的就是能够根据自己的知识以及经验在各种复杂情况下做出快速正确的判断。当问题出现时,你需要知道使用怎样的手段发现问题的根本;找到问题之后,你需要运用你的知识找到解决问题的方法。 这当然并不容易,举重若轻还是举轻若重,取决于你具备怎样的基础以及经验积累。 在网络上,Howard J. Rogers最近创造了一个新词组:Voodoo Tuning,用以形容那些没有及时更新自己的知识技能的所谓的Oracle技术专家。由于知识的陈旧或者理解的肤浅,他们提供的很多调整建议是错误的、容易使人误解的,甚至是荒诞的。他们提供的某些建议在有些情况下也许是正确的,如果你愿意回到Oracle5版或者6版的年代;但是这些建议在Oracle7.0,8.0 或者 Oracle8i以后往往是完全错误的。 后来基于类似问题触发了互联网内Oracle顶级高手的一系列深入讨论,TOM、Jonathan Lewis、HJR等人都参与其中,在我的网站上(www.eygle.com )上对这些内容及相关链接作了简要介绍,有兴趣的可以参考。 HJR给我们提了很好的一个提示:对你所需要调整的内容,你必须具有充分的认识,否则你做出的判断就有可能是错误的。 这也是我想给自己和大家的一个建议: 学习和研究Oracle,严谨和认真必不可少。 当然 你还需要勤奋,我所熟悉的在Oracle领域有所成就的技术人员,他们共同的特点就是勤奋。 如果你觉得掌握的东西没有别人多,那么也许就是因为,你不如别人勤奋。 要是你觉得这一切过于复杂了,那我还有一句简单的话送给大家: 不积跬步,无以至千里。学习正是在逐渐积累过程中的提高。 现在Itpub给我们提供了很好的交流场所,很多问题都可以在这里找到答案,互相讨论,互相学习。这是我们的幸运,我也因此非常感谢这个网络时代。 参考书籍: 如果是一个新人可以先买一些基本的入门书籍,比如MySQL:《 深入浅出MySQL——数据库开发、优化与管理维护 》,在进阶一点的就是《 高性能MySQL(第3版) 》 oracle的参考书籍: http://www.eygle.com/archives/2006/08/oracle_fundbook_recommand.html 最后建议不要在数据库中使用外键,让应用程序来保证。 ------------------------- Re:回 9楼(千鸟) 的帖子 我有一个问题想问问,现在在做一个与图书有关的项目,其中有一个功能是按图书书名搜索相似图书列表,问题不难,但是想优化一下,有如下问题想请教一下: 1、在图书数据库数据表的书名字段里,按图书书名进行关键字搜索,如何快速搜索相关的图书?   现在由于数据不多,直接用的like模糊查找验证功能而已; 如果数据量不大,是可以在数据库中完成搜索的,可以在搜索字段上创建索引,然后进行搜索查询: CREATE TABLE `book` (   `book_id` int(11) NOT NULL AUTO_INCREMENT,   `book_name` varchar(100) NOT NULL,   .............................   PRIMARY KEY (`book_id`),   KEY `ind_name` (`book_name`) ) ENGINE=InnoDB select book.*  from book , (select book_id from book where book_name like '%算法%')  book_search_id  where book.book_id=book_search_id.book_id; 但是当数据量变得很大后,就不在适合了,可以采用一些其他的第三方搜索技术比如sphinx; 2、如何按匹配的关键度进行快速排序?比如搜索“算法”,有一本书是《算法》,另一本书是《算法设计》,要求前者排在更前面。 现在的排序是根据数据表中的主键序号id进行的排序,没有达到想要的效果。 root@127.0.0.1 : test 15:57:12> select book_id,book_name from book_search where book_name like '%算%' order by book_name; +---------+--------------+ | book_id | book_name    | +---------+--------------+ |       2 | 算法       | |       1 | 算法设计 | ------------------------- 回 10楼(大黑豆) 的帖子 模糊查询分为半模糊和全模糊,也就是: select * from book where name like 'xxx%';(半模糊) select * from book where name like '%xxx%';(全模糊) 半模糊可以可以使用到索引,全模糊在上面场景是不能使用到索引的,但可以进行一些改进,比如: select book.*  from book , (select book_id from book where book_name like '%算法%')  book_search_id   where book.book_id=book_search_id.book_id; 注意这里book_id是主键,同时在book_name上创建了索引 上面的sql语句可以利用全索引扫描来完成优化,但是性能不会太好;特别在数据量大,请求频繁的业务场景下不要在数据库进行模糊查询; 非得使用数据库的话 ,建议不要在生产库进行查询,可以在只读节点进行查询,避免查询造成主业务数据库的资源消耗完,导致故障. 可以使用一些开源的搜索引擎技术,比如sphinx. ------------------------- 回 11楼(蓝色之鹰) 的帖子 我想问下,sql优化一般从那几个方面入手?多表之间的连接方式:Nested Loops,Hash Join 和 Sort Merge Join,是不是Hash Join最优连接? SQL优化需要了解优化器原理,索引的原理,表的存储结构,执行计划等,可以买一本书来系统的进行学习,多多实验; 不同的数据库优化器的模型不一样,比如oracle支持NL,HJ,SMJ,但是mysql只支持NL,不通的连接方式适用于不同的应用场景; NL:对于被连接的数据子集较小的情况,嵌套循环连接是个较好的选择 HJ:对于列连接是做大数据集连接时的常用方式 SMJ:通常情况下散列连接的效果都比排序合并连接要好,然而如果行源已经被排过序,在执行排序合并连接时不需要再排序了,这时排序合并连接的性能会优于散列连接 ------------------------- Re:回 19楼(原远) 的帖子 有个问题:分类表TQueCategory,问题表TQuestion(T-SQL) CREATE TABLE TQueCategory ( ID INT IDENTITY(1,1) PRIMARY KEY,        --问题分类ID NAME VARCHAR(20)        --问题分类名称 ) CREATE TABLE TQuestion ( ID INT IDENTITY(1,1) PRIMARY KEY,        --问题ID CateID INT NOT NULL,        --问题分类ID TITLE VARCHAR(50),        --问题标题 CONTENT VARCHAR(500)        --问题内容 ) 当前要统计某个分类下的问题数,有两种方式: 1.每次统计,在TQuestion通过CateID进行分组统计 SELECT CateID,COUNT(1) AS QueNum FROM TQuestion GROUP BY CateID WHERE 1=1 2.在TQueCategory表增加字段QueNum,用于标识该分类下的问题数量 ALTER TABLE TQueCategory ADD QueNum INT SELECT CateID,QueNum FROM TQueCategory 问:在哪种业务应用场景下采用上面哪种方式性能比较好,为什么? ############################################################################################### 方案 一 需要对 TQuestion 的 CateID字段 进行分组 ,可以在 CateID上创建一个索引,这样就可以索引扫描来完成查询; 方案 二 需要对 TQueCategory 进行扫描就可以得出结果,但是必须在问题表有插入,删除的时候维护quenum数量; 单单从SQL的性能来看, 分类表的数量应该是远远小于问题表的数量的,所以方案二的性能会比较好; 但是如果 TQuestion 的插入非常频繁的话,会带来对 TQueCategory的频繁更新,一次 TQuestion 的 insert或deleted就会带来一次 TQueCategory 的update,这个代价其实是蛮高的; 如果这个分类统计的查询不是非常频繁的话,建议还是使用方案一; 同时还可能还会其他的业务逻辑统计需求(例如: CateID +时间),这个时候在把逻辑放到 TQueCategory就不合适了。 ------------------------- 回 20楼(原远) 的帖子 经验之谈,仅供参考 使用外键在开发上确实省去了很多功夫,但是把业务逻辑交由数据库来完成,对后期的维护来说是很麻烦的事情,不利于维护. ------------------------- 回 21楼(玩站网) 的帖子 无关技术方面: 咨询一下,现在mysql新的版本,5.5.45后貌似修改了开源协议。 是否意味着今后我们商业化使用mysql将受到限制? 如果甲骨文真周到那一步,rds是否会受到影响? 一个疑惑: 为什么很少见到有人用mysql正则匹配?性能不好还是什么原因? ######################################## MySQL有商业版 和 社区版,RDS的MySQL采用开源的社区版进行改进,由专门的RDS MySQL源码团队来维护,国内TOP 10的mysql源码贡献者大部分都在RDS,包括了@丁奇 ,@彭立勋 ,@印风 等; 不在数据库中做业务计算,是保证数据库运行稳定的一个好的设计经验; 是否影响性能与你的sql的执行频率,需要参与的计算数据量相关,当然了还包括数据库所在主机的IO,cpu,内存等资源,离开了这些谈性能是没有多大意义的; ------------------------- 回 22楼(比哥) 的帖子 分页该怎么优化才行??? ######################### 可以参考这个链接,里面有很多的最佳实践,其中就包括了分页语句的优化: http://bbs.aliyun.com/read/168647.html?spm=5176.7114037.1996646101.1.celwA1&pos=1 普通写法: select  *  from t where sellerid=100 limit 100000,20 普通limit M,N的翻页写法,往往在越往后翻页的过程中速度越慢,原因 mysql会读取表中的前M+N条数据,M越大,性能就越差: 优化写法: select t1.* from  t t1,             (select id from t  sellerid=100 limit 100000,20) t2 where t1.id=t2.id; 优化后的翻页写法,先查询翻页中需要的N条数据的主键id,在根据主键id 回表查询所需要的N条数据,此过程中查询N条数据的主键ID在索引中完成 注意:需要在t表的sellerid字段上创建索引 create index ind_sellerid on t(sellerid); 案例: user_A (21:42:31): 这个sql该怎么优化,执行非常的慢: | Query   |   51 | Sending data | select id, ... from t_buyer where sellerId = 765922982 and gmt_modified >= '1970-01-01 08:00:00' and gmt_modified <= '2013-06-05 17:11:31' limit 255000, 5000 SQL改写:selectt2.* from (selectid from t_buyer where sellerId = 765922982   andgmt_modified >= '1970-01-01 08:00:00'   andgmt_modified <= '2013-06-05 17:11:31' limit255000, 5000)t1,t_buyer t2 where t1.id=t2.id index:seller_id,gmt_modified user_A(21:58:43): 好像很快啊。神奇,这个原理是啥啊。牛!!! user_A(21:59:55): 5000 rows in set (4.25 sec), 前面要90秒。 ------------------------- 回 27楼(板砖大叔) 的帖子 这里所说的索引都是普通的b-tree索引,mysql,sqlserver,oracle 的关系数据库都是默认支持的; ------------------------- 回 32楼(veeeye) 的帖子 可以详细说明一下“最后建议不要在数据库中使用外键,让应用程序来保证。 ”的原因吗?我们公司在项目中经常使用外键,用程序来保证不是相对而言更加复杂了吗? 这里的不建议使用外键,主要考虑到 : 第一.维护成本上,把一些业务逻辑交由数据库来保证,当业务需求发生改动的时候,需要同时考虑应用程序和数据库,有时候一些数据库变更或者bug,可能会导致外键的失效;同时也给数据库的管理人员带来维护的麻烦,不便于管理。 第二.性能上考虑,当大量数据写入的时候,外键肯定会带来一定的性能损耗,当出现这样的问题时候,再来改造去除外键,真的就不值得了; 最后,不在数据库中参与业务的计算(存储过程,函数,触发器,外键),是保证数据库运行稳定的一个好的最佳实践。 ------------------------- 回 33楼(优雅的固执) 的帖子 ReDBA专家门诊一期:索引与sql优化 十分想请大师分享下建立索引的经验 我平时简历索引是这样的 比如订单信息的话 建立 订单号  唯一聚集索引 其他的比如   客户编号 供应商编号 商品编号 这些建立非聚集不唯一索引   ################################################## 建立索引,需要根据你的SQL语句来进行创建,不是每一个字段都需要进行创建,也不是一个索引都不创建,,可以把你的SQL语句,应用场景发出来看看。 索引的创建确实是一个非常专业的技术活,需要掌握:表的存储方式,索引的原理,数据库的优化器,统计信息,最后还需要能够读懂数据库的执行计划,以此来判断索引是否创建正确; 所以需要进行系统的学习才能掌握,附件是我在2011年的时候的一次公开课的ppt,希望对你有帮助,同时可以把你平时遇到的索引创建的疑惑发到论坛上来,大家可以一起交流。 ------------------------- 回 30楼(几几届) 的帖子 我也是这样,简单的会,仔细写也会写出来,但是就是不知道有没有更快或者更好的 #################################################### 多写写SQL,掌握SQL优化的方法,自然这些问题不在话下了。 ------------------------- 回 40楼(小林阿小林) 的帖子 mysql如何查询需要优化的语句,比如慢查询的步奏,如何找出需要通知程序员修改或者优化的sql语句 ############################################################ 可以将mysql的慢日志打开,就可以记录执行时间超过指定阀值的慢SQL到本地文件或者数据库的slow_log表中; 在RDS中默认是打开了慢日志功能的:long_query_time=1,表示会记录执行时间>=1秒的慢sql; 如何快速找到mysql瓶颈: 简单一点的方法,可以通过监控mysql所在主机的性能(CPU,IO,load等)以及mysql本身的一些状态值(connections,thread running,qps,命中率等); RDS提供了完善的数据库监控体系,包括了CPU,IOPS,Disk,Connections,QPS,可以重点关注cpu,IO,connections,disk 4个 指标; cpu,io,connections主要体现在了性能瓶颈,disk主要体现了空间瓶颈; 有时候一条慢sql语句的频繁调用,也可能导致整个实例的cpu,io,connections达到100%;也有可能一条排序的sql语句,消耗大量的临时空间,导致实例的空间消耗完。 ------------------------- 下面是分析一个cpu 100%的案例分析:该实例的cpu已经到达100% 查看当前数据库的活动会话信息:当前数据库有较多的活跃线程在数据库中执行查看当前数据库正在执行的sql: 可以看到这条sql执行的非常缓慢:[tr=rgb(100, 204, 255)]delete from task_process where task_id='1801099' 查看这个表的索引: CREATE TABLE `task_process` (  `id` int(11) NOT NULL AUTO_INCREMENT,    ................  `task_id` int(11) NOT NULL DEFAULT '0' COMMENT '??????id',   ................  PRIMARY KEY (`id`),  KEY `index_over_task` (`is_over`,`task_id`),  KEY `index_over` (`is_over`,`is_auto`) USING BTREE,  KEY `index_process_sn` (`process_sn`,`is_over`) USING BTREE) ENGINE=InnoDB AUTO_INCREMENT=32129710; 可以看到这个表有3KW的数据,但是没有task_id字段开头的索引,导致该sql语句删除需要进行全表扫描: 在我们的诊断报告中已经将该sql语句捕获到,同时给你提出该怎样进行索引的添加。 广告:诊断报告将会在1月底发布到控制台,到时候用户可以直接查看诊断建议,来完成你的数据库优化。 ------------------------- 回 45楼(dentrite) 的帖子 datetime和int都是占用数据库4个字节,所以在空间上没有什么差别;但是为了可读性,建议还是使用datetime数据类型。 ------------------------- 回 48楼(yuantel) 的帖子 麻烦把ecs_brand和ecs_goods的表结构发出来一下看看 。 ------------------------- 回 51楼(小林阿小林) 的帖子 普通的 ECS服务器上目前还没有这样的慢SQL索引建议的工具。 不过后续有IDBCloud将会集成这样的sql诊断功能,使用他来管理ECS上的数据库就可以使用这样的功能了 。

玄惭 2019-12-02 01:16:11 0 浏览量 回答数 0

问题

分享一个技术大会-SDCC2016大数据技术架构实战峰会(杭州站)

商务会议网 2019-12-01 21:41:42 3335 浏览量 回答数 0

回答

在当前区块链作为新兴技术方向的背景下,需要特别关注的几个关键技术方向和研究热点。在这些方向上的新兴技术发展,会进一步提高区块链技术在应用领域的能力和作用,值得深入学习和思考。 区块链高性能技术 现阶段,区块链不是一种2C的应用技术。从这个角度出发,单纯要求区块链解决性能瓶颈问题并不是一个应用落地的充分必要条件。高盛2019年区块链分析报告提出,区块链技术能够大幅度降低企业间合作成本,提高效率。正如上篇我们提出的联盟链是现阶段最具落地性的区块链技术。 现阶段具有某些业务往来的企业逐渐联盟起来,形成小范围的联盟链试点,一旦新型业务模式形成,势必会有其他企业加入,小联盟逐渐壮大,从而形成以核心企业为主导的、第三方监管机构监督的行业联盟链。 而随着核心企业行业联盟的进一步扩大,多个核心企业所围拢的多条联盟链也会因为业务需求、监管要求统一成一条超级行业联盟链。企业间的竞争逐步变成拥有相同数据情况下的服务竞争。拿去中心化电商联盟链为例,全社会贩卖的商品都存放于同一区块链网络,电商平台的竞争逐步就表现为链上数据的聚合、分类及差异化营销。 公有链属于2C,联盟链拥抱2B。区块链现在面临的TPS问题,2B的联盟链场景下,更多直面的是多个企业间业务数据的共享及交互,不涉及到C端,因此大多数的业务场景其实都可以采用异步上链的方式进行数据共享交互,已经可以满足其实时性需求。 但考虑到未来区块链技术的大规模应用和少部分高频业务,联盟高性能关键技术需要在各个方面进行技术突破,包括高性能的共识算法、高效智能合约引擎,以及新型的共识机制来提高共识效率与安全性,支撑大规模各种网络结构的主网。这个方向是无疑是各个区块链服务公司竞争的焦点和核心发力点。 区块链数据承载能力 数据的极度冗余是区块链本身技术特性导致的,现在行业也已经有相对的解决方案,那就是节点分级。比特币中逐渐有了全节点与轻节点的区别,全节点维护全网从创世区块到当前区块的所有数据,而轻节点只保留与特定账号相关数据,这是一种解决方案;类PoS共识机制区块链在此基础上探索其他方法,那就是从全部节点中推选出少量节点维护账本,其他节点(终端)依赖这些选举出来的节点与区块链网络交互;而更甚的解决方案是对节点进行多角色划分,不同节点负责不同的工作,有负责计算的,有负责存储的。 在联盟链中,数据存储的负担相对较弱,因为联盟链较高的准入门槛和“有权限”的加入方式,一定程度上保证了区块链节点的配置可以使用较高的硬件规格进行。但在大规模应用区块链技术的场景中,数据承载能力仍然制约链上业务的规模。所以节点分级,分配,跨链互通等技术,无疑是提高区块链数据承载能力的关键方向。 同时,在实际的业务中,可以通过数据指纹技术压缩链上数据的数据量,上链的并不是数据实体本身,而是其数据指纹,数据指纹的采集现在多数采用数据哈希。数据本身可以存放在任意其他地方,比如说 IPFS或者传统数据库。 区块链数据来源 目前,链上链下数据互通,在区块链行业中是一个单独的领域,叫做预言机(ORACLE),到现在为止,还没有一个能够被行业广泛认可的解决方案。因此这确实是一个困扰区块链发展的难题,其中的关键点在于:摆脱上链数据人为的干扰。 如果从这个角度出发,5G与物联网技术就能够跟区块链技术结合在一起了。比如说在防伪追溯领域,我们就可以采用传感器等物联网设备直接采集商品数据后,传感器与链直接交互,将数据上链,中间不经过任何利益相关方。 当然,现阶段并不是所有的业务场景都可以被直采数据,同时是物联网的发展程度也还不够。

南霸天霸南北 2019-12-02 03:07:45 0 浏览量 回答数 0

回答

在这个信息时代高速发展的情况下,很多人会对自己该往哪个方向发展感到迷茫,下面我就浅显的给大家介绍一下五大流行区域的发展前景。大数据的发展前景:当前大数据行业真的是人才稀缺吗?学了几年后,大数据行业会不会产能过剩?大数据行业最终需要什么样的人才?接下来就带你们看看分析结果:当前大数据行业真的是人才稀缺吗?对!未来人才缺口150万,数据分析人才最稀缺。先看大数据人才缺口有多大?根据LinkedIn(领英)发布的《2016年中国互联网最热职位人才报告》显示,研发工程师、产品经理、人力资源、市场营销、运营和数据分析是当下中国互联网行业需求最旺盛的六类人才职位。其中数据分析人才最为稀缺、供给指数最低。同时,数据分析人才跳槽速度也最快,平均跳槽速度为19.8个月。而清华大学计算机系教授武永卫去年透露了一组数据:未来3-5年,中国需要180万数据人才,但目前只有约30万人。大数据行业未来会产能过剩吗?提供大数据技术与应用服务的第三方公司面临调整,未来发展会趋集中关于“大数据概念是否被过度炒作”的讨论,其实2013年的夏季达沃斯就有过。彼时支持“炒作”观点的现场观众达54.5%。对此,持反对意见的北京大学光华管理学院副教授苏萌提出了三个理由:不同机构间的数据还未真正流动起来,目前还只是数据“孤岛”;完整的生态产业链还未形成,尽管通过行为数据分析已能够分辨出一个消费者的喜好,但从供应到购买的链条还没建成;数据分析人才仍然极度匮乏。4年之后,舆论热点已经逐渐从大数据转向人工智能,大数据行业也历经整合。近一年间,一些大数据公司相继出现裁员、业务大调整等情况,部分公司出现亏损。那都是什么公司面临危机呢?基于数据归属,涉及大数据业务的公司其实有两类:一类是自身拥有数据的甲方公司,如亚马逊、阿里巴巴等;另一类是整合数据资源,提供大数据技术与应用服务的第三方公司。目前行业整合出现盈利问题的公司多集中在第三方服务商。对此,LinkedIn(领英)中国技术副总裁王迪表示,第三方服务商提供的更多的是技术或平台,大数据更多还是让甲方公司获益。在王迪看来,大数据业务要产生规模效益,至少要具备三点:算法、计算平台以及数据本身。“第三方大数据创业公司在算法上有一技之长,而计算能力实际上已经匀化了,传统企业如果用好了,和大数据创业公司没有区别,甚至计算能力更强,而数据获取方面,很多数据在传统行业内部并没有共享出来,第三方大数据公司获取这些数据是比较困难的,最后可能谁有数据,谁产生的价值更高。”说白了,数据为王。在2013年,拿到千万级A轮融资的大数据企业不足10家,到2015年,拿到千万级以上A轮融资的企业已经超过30家。直到2016年互联网资本寒冬,大数据行业投资热度有所减退,大数据行业是否也存在产能过剩?王迪认为,目前的行业整合属于正常现象,“经过市场的优胜劣汰,第三方服务领域会出现一些做得比较好的公司,其他公司可能被淘汰或转型做一些垂直行业应用。从社会来看,总的需求量一定是增加的,而对于供给侧,经过行业自然的洗牌,最终会集中在几家优秀的行业公司。”需要什么样的大数据人才?今年3月份,教育部公布了第二批获准开设“数据科学与大数据技术”的高校名单,加上第一批获批的北京大学、对外经济贸易大学、中南大学,一共35所高校获批该专业。今年开始,部分院校将招收第一届大数据专业本科生。大数据人才培养涉及到两方面问题:交叉性学科的人才培养方案是否与市场需求相匹配;学科建设的周期与行业快速更新之间的差距怎样弥合。对于第一个问题,“电商热”时期开设的电子商务专业是一个可吸取经验的样本。2000年,教育部高教司批准了第一批高校开设电子商务本科专业。作为一个复合型专业,电子商务的本科教学涵盖了管理、技术、营销三方面的课程。电子商务领域人才需求量大,但企业却无法从电子商务专业中找到合适的人才,原因何在?职业规划专家姜萌认为,并不是某一个专业对应一个行业热点,而是一个专业集群对应一个行业热点。“比如电子商务专业,我们到电子商务公司里会发现,不是学电子商务的人在做这些工作,而是每个专业各司其职,比如计算机、设计、物流管理、营销、广告、金融等等。现在行业的复合型工作都是由一个专业集群来完成的,而不是一个人来复合一堆专业特点。”大数据专业的人才培养也同样走复合型路线,复旦大学大数据学院的招生简章显示,学院本科人才培养以统计学、计算机科学和数学为三大基础支撑性学科,以生物学、医学、环境科学、经济学、社会学、管理学等为应用拓展性学科,具备典型的交叉学科特征。LinkedIn(领英)中国技术副总裁王迪指出,“从企业应用的角度来看,大数据行业里从事相关职能的同学背景是各异的,大数据作为一个人才培养方向还在探索中,在这个阶段,高校尝试开设硕士课程是很好的实践,但开设一类的本科专业还为时过早。”另一方面,专业人才培养的周期较长,而行业热点不断更新轮替,中间产生的时间差使得新兴专业的志愿填报具备了一定风险。王迪认为,“从今天的产业实践上看,大数据领域依然是从现有专业中挑选人才,教育和市场发展总是有一定差距的,学生本科四年,加上硕士阶段已经是七年之后的事情了,产业已经演进了很多,而教学大纲并不会跟进得那么快。”因此,尽管大数据的应用前景毋庸置疑,但在人才培养层面,复合型人才培养方案会不会重走电子商务专业的老路?学校教育如何赶上行业发展速度?这些都是值得进一步商榷的问题。面对热门专业,志愿填报需要注意啥?了解了大数据行业、公司和大数据专业后,姜萌对于考生填报像大数据相关的热门专业,提出了几条建议:报考热的专业和就业热的专业并不一定是重合的,比如软件、计算机、金融,这些专业的就业率实际并没有那么高,地质勘探、石油、遥感等专业,虽然报考上是冷门,但行业需求大,就业率更高。选择热门专业,更需要考虑就业质量。专业就业好,是统计学意义,指的是平均收入水平高,比如金融专业的收入,比其他纯文科专业的平均收入较高,但落实到个体层面,就业情况就不一样了,尤其像金融专业是典型的名校高学历好就业,但对于考试成绩较低的同学来说,如果去一些普通院校、专科院校学习金融,最后就业情况可能还不如会计专业。志愿填报,除了专业,城市因素也很重要:如果想从事金融、互联网的工作,更适合去一线城市,如果是去三、四线城市的学生可以考虑应用面比较广的专业,就是各行各业都能用到的专业,比如会计专业,专科层次的会计和985层次的会计都有就业渠道。如果先选择报考城市,也可以针对所在城市的行业特点选择专业,比如沿海城市外贸相对发达,选择国际贸易、外语类专业就业情况更好,比如武汉有光谷,选择光电类专业更好就业。最终家长和考生更需要考虑个人与专业匹配的问题,金融、计算机等热门专业不是所有人都适合学,好专业不见得对所有个体都是好的。java的发展前景:由于Java的诸多优点,Java的发展前景十分广泛。比如,在我们中国的市场,Java无论在企业级应用,还是在面向大众的服务方面都取得了不少进展,在中国的电信、金融等关键性业务中发挥着举足轻重的作用。由于SUN、TBM、Oracle等国际厂商相继推出各种基于Java技术的应用服务器以及各种应用软件,推动了Java在金融、电信、制造等领域日益广泛的应用,如清华大学计算机系利用Java、XML和Web技术研制开发了多个软件平台,东方科技的TongWeb、中创的Inforweb等J2EE应用服务器。由此可见,在巨大市场需求下,企业对于Java人才的渴求已经是不争的事实。你问我火了这么多年的Java语言的发展前景怎么样?那来看看吧Java在WEB、移动设备以及云计算方面前景广阔,随着云计算以及移动领域的扩张,更多的企业在考虑将其应用部署在Java平台上。无论是本地主机,公共云,Java都是目前最适合的选择。;另外在Oracle的技术投资担保下,Java也是企业在云应用方面回避微软平台、在移动应用方面回避苹果公司的一个最佳选择。Java可以参与制作大部分网络应用程序系统,而且与如今流行的WWW浏览器结合很好,这一优点将促进Java的更大范围的推广。因为在未来的社会,信息将会传送的更加快速,这将推动程序向WEB程序方向发展,由于Java具有编写WEB程序的能力,并且Java与浏览器结合良好,这将使得Java前景充满光明的发展。Python的发展前景:Python程序员的发展前景是怎样的?随着Python的技术的流行, Python在为人们带来工作与生活上的便捷后,关注者们开始慢慢关心Python的发展前景与方向。从自身特性看Python发展Python自身强大的优势决定其不可限量的发展前景。Python作为一种通用语言,几乎可以用在任何领域和场合,角色几乎是无限的。Python具有简单、易学、免费、开源、可移植、可扩展、可嵌入、面向对象等优点,它的面向对象甚至比java和C#、.net更彻底。它是一种很灵活的语言,能帮你轻松完成编程工作。强大的类库支持,使编写文件处理、正则表达式,网络连接等程序变得相当容易。能运行在多种计算机平台和操作系统中,如各位unix,windows,MacOS,OS/2等等,并可作为一种原型开发语言,加快大型程序的开发速度。从企业应用来看Python发展Python被广泛的用在Web开发、运维自动化、测试自动化、数据挖掘等多个行业和领域。一项专业调查显示,75%的受访者将Python视为他们的主要开发语言,反之,其他25%受访者则将其视为辅助开发语言。将Python作为主要开发语言的开发者数量逐年递增,这表明Python正在成为越来越多开发者的开发语言选择。目前,国内不少大企业都已经使用Python如豆瓣、搜狐、金山、腾讯、盛大、网易、百度、阿里、淘宝、热酷、土豆、新浪、果壳等;国外的谷歌、NASA、YouTube、Facebook、工业光魔、红帽等都在应用Python完成各种各样的任务。从市场需求与薪资看Python发展Python得到越来越多公司的青睐,使得Python人才需求逐年增加,从市场整体需求来看,Python在招聘市场上的流行程度也是在逐步上升的,工资水平也是水涨船高。据统计Python平均薪资水平在12K,随着经验的提升,薪资也是逐年增长。学习Python的程序员,除去Python开发工程师、Python高级工程师、Python自动化测试外,也能够朝着Python游戏开发工程师、SEO工程师、Linux运维工程师等方向发展,发展方向较为多元化。随着Python的流行,带动的是它的普及以及市场需求量,所以现在学习Python是个不错的时机。区块链的发展前景:区块链开发 ? 155---0116---2665 ?可是区块链技术到底是什么,大多数人都是模糊没有概念。通俗来讲,如果我们把数据库假设成一本账本,读写数据库就可以看做一种记账的行为,区块链技术的原理就是在一段时间内找出记账最快最好的人,由这个人来记账,然后将账本的这一页信息发给整个系统里的其他所有人。区块链技术也称分布式账本(或账簿)技术,属于互联网数据库技术,由参与者共同完成数据库记录,特点是去中心化和公开透明。此外,在每个区块的信息写入并获得认可后,整个区块链数据库完整保存在互联网的节点中,难以被修改,因此数据库的安全性极高。人们普遍认为,区块链技术是实现数字产品(如货币和知识产权)快速、安全和透明地对等(P2P)转账或转让的重要手段。在以色列Zen Protocol公司,区块链应用软件开发专家阿希尔·曼宁介绍说,他们公司正在开发Zen区块链平台,其将用于支持金融产品在无中介的环境下自动和自由交易。通常,人们将钱存放在银行,依靠银行管理自己的资金。但是,在支配资金时往往会受到银行规定的限制,或在汇款时存在耗时长、费用高等问题。区块链技术平台将让人们首次拥有自己管理和支配钱财的能力,他相信去中心化金融管理体系具有广阔的市场,有望极大地改变传统的金融市场。2018年伊始这一轮区块链的热潮,主要起源于虚拟货币的炒作热情。站在风口,区块链技术被认为是继蒸汽机、电力、互联网之后,下一代颠覆性的核心技术。很多人不禁要问“区块链又和比特币又是什么关系?”记者查询了大量资料发现,比特币2009年被一位名叫中本聪的人提出,之后比特币这套去中心化的机制一直稳定运行,这引起很多人对这套历史上并不存在的运行机制强烈关注。于是人们把从比特币技术抽象提取出来的技术运用于其他领域,称之为区块链。这过程就好像人们先发明了面条,然后人们发现其背后面粉不仅可以做面条还可以做馒头、面包。比特币是面条,区块链是面粉。也就是说,区块链和比特币的关系即比特币算是区块链技术的一种应用,或者说一种使用了区块链技术的产品形态。而说到区块链不得不说的就是ICO,它是一种公开发行的初始数字货币。对于投资人来说,出于对市场信号的敏感和长期关注价值投资项目,目前炙手可热的区块链也成为诸多投资人关注的新兴项目之一。“区块链对于我们来说就是省去了中间环节,节约了交易成本,节省了交易时间,但是目前来看各方面环境还不够成熟,有待观望。”一位投资人这样说道。记者发现,在春节期间,不少互金圈的朋友熬夜到凌晨进入某个探讨区块链的微信群热聊,此群还吸引了不少知名人士,诸如明星加入,同时还有大咖在群里解读区块链的投资方式和未来发展等等。一时间,关于区块链的讨论群接二连三出现,也引发了各个行业对区块链的关注。出于对于区块链技术懵懂的状态,记者追问了身边的一些互金圈的朋友,为何如此痴迷区块链?多数朋友认为“区块链能赚钱,抱着试试看的心态,或许能像之前比特币一样从中获取收益。”显然,区块链技术具有广阔的应用潜力,但是在其逐步进入社会改善民众生活的过程中,也面临许多的问题,需要积极去寻求相应的对策,最终让其发挥出潜力。只有这样,10年或20年后人们才能真正享受区块链技术创造的美好环境。人工智能的发展前景:人工智能产业是智能产业发展的核心,是其他智能科技产品发展的基础,国内外的高科技公司以及风险投资机构纷纷布局人工智能产业链。科技部部长万钢3月10日表示,加快实施新一代人工智能科学基础的关键技术系统集成研发,使那些研发成果尽快能够进入到开放平台,在开放使用中再一次把它增强完善。万钢称,马上就要发布人工智能项目指南和细则,来突破基础前沿理论关键部分的技术。人工智能发展趋势据前瞻产业研究院《人工智能行业市场前瞻与投资战略规划分析报告》指出,2017年中国人工智能核心产业规模超过700亿元,随着国家规划的出台,各地人工智能相关建设将逐步启动,预计到2020年,中国人工智能核心产业规模将超过1600亿元,增长率达到26.2%。报告认为,从产业投资回报率分析,智能安防、智能驾驶等领域的快速发展都将刺激计算机视觉分析类产品的需求,使得计算机视觉领域具备投资价值;而随着中国软件集成水平和人们生活水平的提高,提供教育、医疗、娱乐等专业化服务的服务机器人和智能无人设备具备投资价值。人工智能现状当前,人工智能受到的关注度持续提升,大量的社会资本和智力、数据资源的汇集驱动人工智能技术研究不断向前推进。从发展层次来看,人工智能技术可分为计算智能、感知智能和认知智能。当前,计算智能和感知智能的关键技术已经取得较大突破,弱人工智能应用条件基本成熟。但是,认知智能的算法尚未突破,前景仍不明朗。今年,随着智力资源的不断汇集,人工智能核心技术的研究重点可能将从深度学习转为认知计算,即推动弱人工智能向强人工智能不断迈进。一方面,在人工智能核心技术方面,在百度等大型科技公司和北京大学、清华大学等重点院校的共同推动下,以实现强人工智能为目标的类脑智能有望率先突破。另一方面,在人工智能支撑技术方面,量子计算、类脑芯片等核心技术正处在从科学实验向产业化应用的转变期,以数据资源汇集为主要方向的物联网技术将更加成熟,这些技术的突破都将有力推动人工智能核心技术的不断演进。工业大数据2022 年我国工业大数据有望突破 1200 亿元, 复合增速 42%。 工业大数据是提升制造智能化水平,推动中国制造业转型升级的关键动力,具体包括企业信息化数据、工业物联网数据,以及外部跨界数据。其中,企业信息化和工业物联网中机器产生的海量时序数据是工业数据的主要来源。工业大数据不仅可以优化现有业务,实现提质增效,而且还有望推动企业业务定位和盈利模式发生重大改变,向个性化定制、智能化生产、网络化协同、服务化延伸等智能化场景转型。预计到 2022 年,中国工业大数据市场规模有望突破 1200亿元,年复合增速 42%。IT的未来是人工智能这是一个指数级增长的时代。过去几十年,信息技术的进步相当程度上归功于芯片上晶体管数目的指数级增加,及由此带来的计算力的极大提升。这就是所谓的摩尔定律。在互联网时代,互联的终端数也是超线性的增长,而网络的效力大致与联网终端数的平方成正比。今天,大数据时代产生的数据正在呈指数级增加。在指数级增长的时代,我们可能会高估技术的短期效应,而低估技术的长期效应。历史的经验告诉我们,技术的影响力可能会远远的超过我们的想象。未来的计算能力人工智能需要强大的计算能力。计算机的性能过去30年提高了一百万倍。随着摩尔定律逐渐趋于物理极限,未来几年,我们期待一些新的技术突破。先谈一下类脑计算。传统计算机系统,长于逻辑运算,不擅长模式识别与形象思维。构建模仿人脑的类脑计算机芯片,我们今天可以以极低的功耗,模拟100万个神经元,2亿5千万个神经突触。未来几年,我们会看到类脑计算机的进一步的发展与应用随着互联网的普及、传感器的泛在、大数据的涌现、电子商务的发展、信息社区的兴起,数据和知识在人类社会、物理空间和信息空间之间交叉融合、相互作用,人工智能发展所处信息环境和数据基础发展了巨大的变化。伴随着科学基础和实现载体取得新的突破,类脑计算、深度学习、强化学习等一系列的技术萌芽预示着内在动力的成长,人工智能的发展已进入一个新的阶段。发展发展前景好,代表你现在学习会比后来者起步快,占有更大的优势,当然,你也要明白兴趣是最好的老师,选择自己感兴趣的相信你学的会更加而牢固。记住,最重要的一点:方向最重要!!!希望大家多多关注. ,加微信zhanglindashuju 可以获取更多资料哦作者:失色的瞳孔链接:https://juejin.im/post/5b1a6531e51d45067e6fc24a来源:掘金著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

孟志昂 2019-12-02 01:45:13 0 浏览量 回答数 0

回答

两个凡是: 1: LDAP只用于 用户认证(authentication),除非业务系统中的业务关系,和人事关系完全一致.这种情况很少. -------以下是授权部分(Authorization) 2: 业务系统 Profile(简档)定义 ACL(Action control list), 也就是CRUD系统当中所谓"角色" 3: (Role)角色定义树状组织. 4: BOSR(business object sharing rules) 根据ACL,联合Role形成三个维度,进行精确的 可见性,访问性控制. 以上 3-4,是所有的 Open source软件都无法做到的. 而且用Mysql这种"非"数据库是不可能实现的. 增加一个流程控制,就可以实现任意的业务方面的权限控制.######回复 @jackstraw : mysql糟糕也就算了.那些搞mysql的人,更糟糕.哈哈######建议@宏哥有空发个帖子,标题叫:mysql做不了的哪些事儿 : )######  @mark35 select * from v_content where ( role_id in (select id from (select * from connectby('cms_role','id','pid','id','0',0,';') as t(id int, pid int, level int, branch text, pos int) where level >=1) utree) or owner_id='10000') 给你一个例子. 上面的SQL表示, 查询出v_content当中, 属于自己以及在自己管理的组织下的所有记录. 你也可以用括号把它变成一个结果集,再进行group sharing 的并操作,再对business rules 进行集成运算. ######@mark35 , FYI###### 数据一般分为 Public/Private 和 Read, Write, Authorization(数据上的再授权) 组成6个组合 通过 组织构架图, 实现 近似 无限种组合,  数据基准, 是以数据属主, 在 策略/组织数, 上进行递归运算, 自动向上级授权实现. 这是其中一个维度, 也是最复杂的维度,  另外 可以设定组, 在组内 互相 public/private/auth 进行交叉共享, 这个共享仍然在组织树上递归授权 第三维度, 在于业务维度, 通过比如审批价格产生的数据授权, 再进行 组,组织树的 再运算, 又产生数据访问控制. 这个就非常复杂了. 你仔细理解这几句话, 相信你对所有系统的数据访问授权都能找到答案. ######嗯 如果把操作 save/delete/update/get 包含在url中,你认为还是这么复杂吗?######统一认证我就不说了。 组织结构你要放在你们系统,因为你是人员信息权威源,第三方系统如果有需要可以同步组织结构数据。 授权信息可以不放。 一般简单意义上的统一授权都是基于角色。用户和角色的关系放在ldap中,由第三方系统配置到ldap。达到统一权限的目的。(一般软件都支持ldap人员数据) 授权信息不放你这里的主要原因的第三方系统你改不起。######有道理! 有一个疑惑的地方,你的意思是角色、角色与用户的关系也存在ldap吗? 但是不同的系统需要定义的角色是不一样的, 每个系统的角色都先定义到ldap也不现实啊...######看一个例子,不代表这个例子就是对的。包括IBM堆出来的。项目本身有非技术的原因,成功的实施项目不代表是合理的项目。特别是非定制开发的,只是产品化实施出来的东西。(话又回来,定制开发的东西,也未必是合理的东西,哈,受甲方猪头影响更大)。 权限系统和公司自身管理方式关联很大。没谁对谁错的。不能拿一个理论上完美的东西,去让甲方套。设计者也要着重关注甲方的业务特点,组织特点,和管理状态。这些是设计权限系统的重要参考信息,而不是理论本身。###### 引用来自“中山野鬼”的答案 看一个例子,不代表这个例子就是对的。包括IBM堆出来的。项目本身有非技术的原因,成功的实施项目不代表是合理的项目。特别是非定制开发的,只是产品化实施出来的东西。(话又回来,定制开发的东西,也未必是合理的东西,哈,受甲方猪头影响更大)。 权限系统和公司自身管理方式关联很大。没谁对谁错的。不能拿一个理论上完美的东西,去让甲方套。设计者也要着重关注甲方的业务特点,组织特点,和管理状态。这些是设计权限系统的重要参考信息,而不是理论本身。 目前在设计一个东西的时候,先看有没有一个标准性的东西, 别人是怎么实现的,他们都有些什么最佳实践。 反正尽量避免闭门造车。 总的来说还是见闻太少,缺少对一个大型的成功的系统的学习和分析, 还是有点迷信典型。 我十分赞同 @宏哥 的建议: 1: LDAP只用于 用户认证 2: 业务系统 Profile(简档)定义 ACL 3: (Role)角色定义树状组织. ###### 引用来自“中山野鬼”的答案 看一个例子,不代表这个例子就是对的。包括IBM堆出来的。项目本身有非技术的原因,成功的实施项目不代表是合理的项目。特别是非定制开发的,只是产品化实施出来的东西。(话又回来,定制开发的东西,也未必是合理的东西,哈,受甲方猪头影响更大)。 权限系统和公司自身管理方式关联很大。没谁对谁错的。不能拿一个理论上完美的东西,去让甲方套。设计者也要着重关注甲方的业务特点,组织特点,和管理状态。这些是设计权限系统的重要参考信息,而不是理论本身。 不得不说你,太不专业了. 权限系统全部都是这样设计的. 只有最后一个Business Object Sharing Rules是不一样的. 这是业务规则. 主数据,可以控制所有访问控制. 连业务规则都是根据配置数据进行设定. ###### 引用来自“宏哥”的答案 两个凡是: 1: LDAP只用于 用户认证(authentication),除非业务系统中的业务关系,和人事关系完全一致.这种情况很少. -------以下是授权部分(Authorization) 2: 业务系统 Profile(简档)定义 ACL(Action control list), 也就是CRUD系统当中所谓"角色" 3: (Role)角色定义树状组织. 4: BOSR(business object sharing rules) 根据ACL,联合Role形成三个维度,进行精确的 可见性,访问性控制. 以上 3-4,是所有的 Open source软件都无法做到的. 而且用Mysql这种"非"数据库是不可能实现的. 增加一个流程控制,就可以实现任意的业务方面的权限控制. 宏哥, 多谢指教。 前两点我都明白了。 对第3,4点, 还有点问题: 3.   (Role)角色定义树状组织        (1) 和 一个企业的组织结构(Organization Structure)  有联系和区别吗?       (3) Role 是存在 ldap中吗? 各个业务系统要求的Role是不一样的, 统一存难度有点大。。 4.  BOSR(business object sharing rules)      我理解的就类似 oracle 的账户可以把自己的权限grant给其信任的账户, 是这样的吗? ######很值得讨论的一个东西······我也是不知道怎么做,自己随便搞……###### 引用来自“一千年前的人”的答案 引用来自“宏哥”的答案 两个凡是: 1: LDAP只用于 用户认证(authentication),除非业务系统中的业务关系,和人事关系完全一致.这种情况很少. -------以下是授权部分(Authorization) 2: 业务系统 Profile(简档)定义 ACL(Action control list), 也就是CRUD系统当中所谓"角色" 3: (Role)角色定义树状组织. 4: BOSR(business object sharing rules) 根据ACL,联合Role形成三个维度,进行精确的 可见性,访问性控制. 以上 3-4,是所有的 Open source软件都无法做到的. 而且用Mysql这种"非"数据库是不可能实现的. 增加一个流程控制,就可以实现任意的业务方面的权限控制. 宏哥, 多谢指教。 前两点我都明白了。 对第3,4点, 还有点问题: 3.   (Role)角色定义树状组织        (1) 和 一个企业的组织结构(Organization Structure)  有联系和区别吗?       (3) Role 是存在 ldap中吗? 各个业务系统要求的Role是不一样的, 统一存难度有点大。。 4.  BOSR(business object sharing rules)      我理解的就类似 oracle 的账户可以把自己的权限grant给其信任的账户, 是这样的吗? 具体实现很复杂. 角色定义,各个系统都可以自定义,不是人事上的组织定义,而是递归授权的基础. Role基本上和ldap没有关系.Ldap只回答who are you的问题,就是authentication, Role 可以回答在具体事件当中,where are you的问题, 所有维度统一起来,才能回答what can you do 可以定义group,进行交叉授权. BOSR ,更复杂. 同样一个东西,比如销售数据,财务报销数据,会对应不同的rule,如果增加一个流程,就意味着,不同阶段,对应不同rule. 和oracle那玩意类似,但是复杂很多. 这个东西,如果用 垃圾java的那个spring security来实现,需要100000000000000000万个xml配置才能实现. ######脑残,华为的内部系统是java实现的,全球500强的企业,多少组织结结构,多少权限细分,认证也是使用的ldap,你见过后台权限控制的表结构吗?

kun坤 2020-06-04 18:08:28 0 浏览量 回答数 0

回答

Re关于快照功能,根本用不了的东西你们拿出来害人的么???? 请问下数据丢失造成的损失谁来赔偿??你们拿个不能用的功能出来忽悠人的么? ------------------------- Re关于快照功能,根本用不了的东西你们拿出来害人的么???? GJ5KT70 工单号在这里 你们自己看吧 ------------------------- Re关于快照功能,根本用不了的东西你们拿出来害人的么???? 大概的情况就是,我使用了这里的快照功能,结果没一个是可以用的,使用了之后,ping不到服务器,也无法远程登录,他们所谓的VNC连接也连不上,然后折腾到刚才,让我重新初始化硬盘,然后让我自己重新用他们挂的硬盘找数据,这尼玛什么狗屁云主机?? ------------------------- Re关于快照功能,根本用不了的东西你们拿出来害人的么???? 之前自动备份的任何一个快照都不能回滚,回滚之后的情况就是服务器ping不同,无法远程登录,我甚至把主机的管理账号都给你们技术人员了,最后的结果就是让我重新初始化系统盘,然后自己拷数据,所有的环境,数据库数据都要自己重装,昨天晚上我们搞了一个通宵来取数据,还需要至少一两天来装环境,请问一下,这造成的损失谁来赔偿?另外,你们技术说我们自己的快照问题,我想请问下,最新的快照是9.9号凌晨的,我们9.9号白天还重启了服务器,如果说快照的时候,服务器就已经存在问题,那我们这个重启应该进不了系统才对啊?希望阿里云给出合理解释!!这期间造成的损失,谁来赔偿??? ------------------------- 回8楼woaj01的帖子 你一个人没问题不代表别人使用没问题,等你自己碰到快照问题的时候你会怎么做?最起码所有的数据环境你要重新自己装吧,那个时候是新手还是老手有什么关系? ------------------------- 回7楼旅者的帖子 不行,所有的快照都用不了,连系统ping都ping不通,应该是系统无法引导启动,但是我们9.9号还重启过一次电脑的,所以阿里云所谓的快照的时间点上,系统已经出问题的说法根本不成立! ------------------------- 回14楼西贝庄的帖子 本来我自己重启服务器,起码是oracle启动有问题,后来用快照回滚,整个服务器都访问不了了,我希望要一个解释,本来我昨天都跟你们阿里云的客服说了 还要再买一台云主机的,你们这种态度 我怎么买? ------------------------- 回18楼appayud1v的帖子 您是阿里云的托儿吗?首先,我在回滚之间,重启过系统,所以你说的系统问题不存在,另外,阿里云方面的工程师已经承认是他们的问题,并且告诉我这个问题没法找到问题的原因。整件事情上,我一直保持克制,我们的工程师花了一个通宵抢救数据,耗费的精力我就不说了,你们需要我配合买服务器给你们测试,我也买了,我是完全配合你们工程师寻找问题的。然后你们给我找了个所谓的资深经理跟我们沟通,结果呢?跟我说会继续跟进,然后就不理我们了,后面都是我们主动打电话找的他,而且全程一副“你们的问题解决了,还需要什么帮助吗?”的态度。这实在是令人气愤,工单到现在为止还没关闭,也没有任何人出来跟我们谈赔偿的事宜,请问下 阿里云你们就是这么准备上市的吗 ------------------------- 回22楼qilu的帖子 你说的这种情况是不存在的,因为在回滚快照前,我重启过系统,只不过当时因为oracle有点问题,所以我想用快照回复一下试试看,结果连系统都进不去了,这点你们的工程师已经承认不是这个原因造成的故障。

luck0o0 2019-12-02 00:22:57 0 浏览量 回答数 0

问题

dubbo 的 spi 思想是什么?【Java问答学堂】50期

剑曼红尘 2020-07-07 09:48:29 25 浏览量 回答数 1

问题

区块链私链搭建资料

leitgo 2019-12-01 21:29:05 2903 浏览量 回答数 0

问题

【教程免费下载】 MySQL DBA修炼之道

玄学酱 2019-12-01 22:08:05 2647 浏览量 回答数 1

回答

6月30日打卡,今日学习第四讲云端运维/监控/容器及DevOps实践”。 作业如下: 1. 关注云端架构带来的运维挑战, A单服务变更性能影响如何评估? B性能瓶颈在各微服务间漂移,如何做好性能测试? C应对突发流量需求,扩容能否解决问题,如何扩容? D服务实例数量众多,如何收集信息,快速定位性能问题? 2. 搭建成本高,学习成本大,监控不全 3. 未来一站式监控,全局埋点 4. 快速弹性伸缩 5. 构建仓库,采用模型化容器监控方案。通过对监控对象、监控过程进行建模,基于模型来驱动整个监控场景 #6月23日打卡,今日学习第三讲,《云端五大类热门技术实践》 ---作业1. 云平台已经充分考虑了各种场景下的应用的搭建,且为之实现了高可用,且能动态弹性伸缩 。 作业2. 负载均衡,多数据中心。 作业3. 前端负载均衡一般考虑七层,后端应用要充分考虑未来的压力,做好应用的高并发处理等 。 作业4. 主备、热备、冷备 。 作业5. 读写操作 。 6月21打卡读书汇第二讲:云端系统热门技术选型及配置容量规划实战”。 作业1 因为是入口流量,所以不收取流量费用; 作业2 Nginx可以作为Web服务器、或者负载均衡,有以下优势: 稳定性好,云端架构中LNMP(Linux+Nginx+MySQL+PHP)应用很广泛; 支持四层、七层的负载均衡、反向代理的功能; 性能高,高并发,系统资源占用少; 支持插件和灵活的二次开发; 前端静态数据缓存; 作业3 不可以;因为LVS(Linux Virtual Server)在四层和二层,不能识别封装在七层中的数据包内容。 作业4 一次连接:LVS的DR模式、NAT模式对数据包的处理都做一次连接,负载均衡对数据包仅做转发; 二次连接:Ngnix/HAProxy四层的二次连接是客户端和负载均衡进行TCP三次握手后,负载均衡和后端服务器会进行新的TCP连接; Nginx/HAProxy七层的二次连接是客户端和负载均衡进行TCP三次握手后,还需要等客户端Pushdata传输数据后,负载均衡和后端服务器会进行新的TCP连接; 作业5 I/O 5分钟法则:如果一天记录频繁被访问,就应该考虑放到缓存里。否则的话,客户端就按需要直接去访问数据源,这个的临界点是5分钟。 作业6 数据库的三大分类:关系型数据库(ACID模型)、BASE模型、非关系型数据库。 热门关系型数据库:Microsoft Access,Oracle、MySQL、SQL Server; 热门非关系型数据库:Redis; 作业7 2台 8核16G,10Mbps; 6月9日打卡今日学习《第一讲:云计算带来的技术变革》 作业一. B 作业二.有更强大的技术支持,对业务的满足更加充分,环境配置方面非常方便,自动化运维。 作业三. IaaS基础设施即服务 ,将软件的开发、管理、部署都交给第三方。Pass:平台即服务,提供软件部署平台,抽象了硬件和操作系统细节,可以无缝地扩展。开发者只需要关注自己的业务逻辑,不需要关注底层;Sass:软件即服务 ,是云服务的最底层,主要提供一些基础资源 作业四:编程语言是java,技术架构是Devops。作业

创造001 2020-06-09 23:36:25 0 浏览量 回答数 0

问题

2018MySQL技术问答集锦,希望能给喜欢MySQL的同学一些帮助

技术小能手 2019-12-01 19:31:11 1856 浏览量 回答数 0

回答

第一讲:云计算带来的技术变革 6月9日打卡,今日学习《第一讲:云计算带来的技术变革》,通过乔帮主本次的领读,学到了云平台、云产品的选型以及软件技术的选项 完成的作业见如下: 1. B 2. 区别是:云平台相对传统的虚拟化容器来讲,有强大的技术支持,同时尽量满足大多数业务需要,能够一键开启服务器环境,进行管理、操作相关软件应用 3.区别是: SaaS、PaaS、IaaS简单的说都属于云计算服务,也就是云计算+服务 IaaS(Infrastructure as a service – 基础设施即服务):用户可以在云服务提供商提供的基础设施上部署和运行任何软件,包括操作系统和应用软件 PaaS(Platform as a service – 平台即服务):PaaS给用户提供的能力是使用由云服务提供商支持的编程语言、库、服务以及开发工具来创建、开发应用程序并部署在相关的基础设施上 SaaS(Software as a Service – 软件即服务):SaaS给用户提供的能力是使用在云基础架构上运行的云服务提供商的应用程序。 4. 云端最火的语言是Java 第二讲:云端系统热门技术选型及配置容量规划实战 2020年6月20日打卡,今日学习《第二讲:云端系统热门技术选型及配置容量规划实战》,通过乔帮主本次的领读,学到了云端系统技术选型:云端网络、云端web服务器、云端负载均衡、云端存储、云端缓存和云端数据库六个方面,以及云端配置选型。 作业1:不收取流量费用,因为是入口流量;作业2:Nginx可以作为Web服务器、或者负载均衡,优势如下:稳定性好,云端架构中LNMP(Linux+Nginx+MySQL+PHP)应用很广泛;性能高,高并发,系统资源占用少;支持四层、七层的负载均衡、反向代理的功能;前端静态数据缓存; 支持插件和灵活的二次开发;作业3:可以,因为LVS(Linux Virtual Server)在四层和二层,不能识别封装在七层中的数据包内容。作业4:一次连接:LVS的DR模式、NAT模式对数据包的处理都做一次连接,负载均衡对数据包仅做转发;二次连接:Ngnix/HAProxy四层的二次连接是客户端和负载均衡进行TCP三次握手后,负载均衡和后端服务器会进行新的TCP连接; Nginx/HAProxy七层的二次连接是客户端和负载均衡进行TCP三次握手后,还需要等客户端Pushdata传输数据后,负载均衡和后端服务器会进行新的TCP连接;作业5:I/O 5分钟法则:如果一天记录频繁被访问,就应该考虑放到缓存里。否则的话,客户端就按需要直接去访问数据源,这个临界点就是5分钟。作业6:数据库的三大分类:关系型数据库(ACID模型)、BASE模型、非关系型数据库。热门关系型数据库:Oracle、MySQL、SQL Server;热门非关系型数据库:Redis;作业7:2台 核16G,10Mb 第三讲:云端五大类热门技术实践 2020年6月25日打卡,今日学习《第三讲:云端五大类热门技术实践》,通过乔帮主本次的领读,学到了云端实践中的主机、负载均衡、存储、缓存和数据库实践。 作业1 分布式架构对服务器单机的性能依赖不高,通过大量云资源进行分布式快速部署,满足业务的需求和发展。 作业2 DNS+跨地域+Docker分布式架构,通过智能解析把不同地域的请求引流到各自地域部署的节点中,节点中部署的业务用Docker进行部署,业务代码对平台没有依赖,又可以接入各大云运营商。 作业3 前端建议使用四层; 部署Web类后端的注意事项:需要配置https证书,虚拟主机,Rewrite等功能,可放在后端中用Nginx配置; 作业4: 系统数据:Rsync,快照 文件数据:NFS,OSS 数据库数据:主从复制 作业5:读写分离属于垂直分区,主要是为了解决数据库读写的压力; Sharing技术属于水平分区,为了解决海量数据的压力; 第四讲:云端运维/监控/容器及DevOps实践 2020年6月30日打卡,今日学习《第四讲:云端运维/监控/容器及DevOps实践》,通过乔帮主本次的领读,学到了云端实践篇中的云端运维实践、云端监控实践和云端容器/DevOps实践。 作业1 一:云端配置选型 二:云端网络架构 三:云端负载均衡的选择 四:云端静态资源访问 五:云端运维管理 作业2 Zabbix的Server端数据是以MySQL为主的关系型数据库,存在性能问题,对云容器支持不太好; Prometheus属于容器监控体系技术,对云产品、站点、日志、代码监控问题无法解决; 作业3 云监控会成为未来监控的主要趋势,云平台把常见的开源环境,Web、缓存、数据库等进行封装产品化。 作业4 基于Docker镜像的CI/CD与传统基于代码仓库的CI/CD有以下优势: 实现容器启动在秒级完成发布; 对ECS没有依赖; Docker容器资源自定义配置,最大化提升资源利用率; 可以结合JIRA+Confluence做项目管理及知识库管理; 作业5 使用Docker+K8S+DNS+Rancher 第五讲:云时代安全防护面临的挑战和机遇 2020年7月7日打卡,今日学习《第五讲:云时代安全防护面临的挑战和机遇》,通过乔帮主的领读,学习到了云端安全面临的挑战和机遇,云端黑客常见攻击和云端安全最佳防御方案。 作业1 Redis漏洞不能用WAF防御,要用安骑士来检测,WAF针对OSI七层模型中HTTP层的防御,也就是Web漏洞的防御;安骑士是解决操作系统级别的漏洞、木马、病毒。 作业2 在CDN上配置证书,一般把证书存放在流量入口处。 作业3 DDoS+WAF结合起来防御。 作业4 采用安全类云产品,替代单机低配服务器; 安全架构进行优化,采用分布式架构; 在运维层次进行安全保障,调优PHP进行数、Tomcat连接数等,调优操作系统内核参数;

爱吃鱼的程序员 2020-06-09 21:43:01 0 浏览量 回答数 0

回答

第五讲:云时代安全防护面临的挑战和机遇 2020年7月12日打卡,今日学习《第五讲:云时代安全防护面临的挑战和机遇》,通过乔帮主的领读,学习到了云端安全面临的挑战和机遇,云端黑客常见攻击和云端安全最佳防御方案。 作业1 Redis漏洞不能用WAF防御,要用安骑士来检测,WAF针对OSI七层模型中HTTP层的防御,也就是Web漏洞的防御;安骑士是解决操作系统级别的漏洞、木马、病毒。 作业2 在CDN上配置证书,一般把证书存放在流量入口处。 作业3 DDoS+WAF结合起来防御。 作业4 采用安全类云产品,替代单机低配服务器;安全架构进行优化,采用分布式架构;在运维层次进行安全保障,调优PHP进行数、Tomcat连接数等,调优操作系统内核参数; 第四讲:云端运维/监控/容器及DevOps实践 2020年7月5日打卡,今日学习《第四讲:云端运维/监控/容器及DevOps实践》,通过乔帮主本次的领读,学到了云端实践篇中的云端运维实践、云端监控实践和云端容器/DevOps实践。 作业1 一:云端配置选型 二:云端网络架构 三:云端负载均衡的选择 四:云端静态资源访问 五:云端运维管理 作业2 Zabbix的Server端数据是以MySQL为主的关系型数据库,存在性能问题,对云容器支持不太好; Prometheus属于容器监控体系技术,对云产品、站点、日志、代码监控问题无法解决; 作业3 云监控会成为未来监控的主要趋势,云平台把常见的开源环境,Web、缓存、数据库等进行封装产品化。 作业4 基于Docker镜像的CI/CD与传统基于代码仓库的CI/CD有以下优势: 实现容器启动在秒级完成发布;对ECS没有依赖;Docker容器资源自定义配置,最大化提升资源利用率;可以结合JIRA+Confluence做项目管理及知识库管理; 作业5 使用Docker+K8S+DNS+Rancher 第三讲:云端五大类热门技术实践 2020年6月25日打卡,今日学习《第三讲:云端五大类热门技术实践》,通过乔帮主本次的领读,学到了云端实践中的主机、负载均衡、存储、缓存和数据库实践。 作业1 分布式架构对服务器单机的性能依赖不高,通过大量云资源进行分布式快速部署,满足业务的需求和发展。 作业2 DNS+跨地域+Docker分布式架构,通过智能解析把不同地域的请求引流到各自地域部署的节点中,节点中部署的业务用Docker进行部署,业务代码对平台没有依赖,又可以接入各大云运营商。 作业3 前端建议使用四层; 部署Web类后端的注意事项:需要配置https证书,虚拟主机,Rewrite等功能,可放在后端中用Nginx配置; 作业4 系统数据:Rsync,快照 文件数据:NFS,OSS 数据库数据:主从复制 作业5 读写分离属于垂直分区,主要是为了解决数据库读写的压力; Sharing技术属于水平分区,为了解决海量数据的压力; 第二讲:云端系统热门技术选型及配置容量规划实战 2020年6月20日打卡,今日学习《第二讲:云端系统热门技术选型及配置容量规划实战》,通过乔帮主本次的领读,学到了云端系统技术选型:云端网络、云端web服务器、云端负载均衡、云端存储、云端缓存和云端数据库六个方面,以及云端配置选型。 作业1 不收取流量费用,因为是入口流量; 作业2 Nginx可以作为Web服务器、或者负载均衡,优势如下: 稳定性好,云端架构中LNMP(Linux+Nginx+MySQL+PHP)应用很广泛;性能高,高并发,系统资源占用少;支持四层、七层的负载均衡、反向代理的功能;前端静态数据缓存;支持插件和灵活的二次开发; 作业3 不可以,因为LVS(Linux Virtual Server)在四层和二层,不能识别封装在七层中的数据包内容。 作业4 一次连接:LVS的DR模式、NAT模式对数据包的处理都做一次连接,负载均衡对数据包仅做转发; 二次连接:Ngnix/HAProxy四层的二次连接是客户端和负载均衡进行TCP三次握手后,负载均衡和后端服务器会进行新的TCP连接; Nginx/HAProxy七层的二次连接是客户端和负载均衡进行TCP三次握手后,还需要等客户端Pushdata传输数据后,负载均衡和后端服务器会进行新的TCP连接; 作业5 I/O 5分钟法则:如果一天记录频繁被访问,就应该考虑放到缓存里。否则的话,客户端就按需要直接去访问数据源,这个临界点就是5分钟。 作业6 数据库的三大分类:关系型数据库(ACID模型)、BASE模型、非关系型数据库。 热门关系型数据库:Oracle、MySQL、SQL Server; 热门非关系型数据库:Redis; 作业7 2台 8核16G,10Mbps 第一讲:云计算带来的技术变革 6月17日打卡,今日学习《第一讲:云计算带来的技术变革》,通过乔帮主本次的领读,学到了云平台、云产品的选型以及软件技术的选项; 名词解释: IDC(Internet Data Center):互联网数据中心 作业1 B,web应用做云端负载均衡,优先采用SLB,且SLB七层支持HTTP/HTTPS。 作业2 云平台与传统虚拟化技术最大的优势在于按需索取、随开随用。(借用老师在书中的介绍) 作业3 IaaS:基础设施服务,Infrastructure-as-a-servicePaaS:平台服务,Platform-as-a-serviceSaaS:软件服务,Software-as-a-service IaaS 是云服务的最底层,主要提供一些基础资源。 PaaS 提供软件部署平台(runtime),抽象掉了硬件和操作系统细节,可以无缝地扩展(scaling)。开发者只需要关注自己的业务逻辑,不需要关注底层。 SaaS 是软件的开发、管理、部署都交给第三方,不需要关心技术问题,可以拿来即用。 作业4 支持我从事的Java语言,自动化运维DevOps方向

yvonne6688 2020-06-17 22:20:40 0 浏览量 回答数 0

问题

高效运维最佳实践(03):Redis集群技术及Codis实践

柚子 2019-12-01 21:48:00 29893 浏览量 回答数 1
阿里云大学 云服务器ECS com域名 网站域名whois查询 开发者平台 小程序定制 小程序开发 国内短信套餐包 开发者技术与产品 云数据库 图像识别 开发者问答 阿里云建站 阿里云备案 云市场 万网 阿里云帮助文档 免费套餐 开发者工具 企业信息查询 小程序开发制作 视频内容分析 企业网站制作 视频集锦 代理记账服务 2020阿里巴巴研发效能峰会 企业建站模板 云效成长地图 高端建站