• 关于

    帮助系统如何玩

    的搜索结果

问题

新手不妨自己安装虚拟机研究如何配置后再在服务器上操作

千鸟 2019-12-01 20:58:48 11076 浏览量 回答数 8

问题

【精品问答】消息服务 MNS

montos 2020-04-08 12:35:50 2 浏览量 回答数 1

回答

回5楼tftaxis的帖子 对于云主机的选择我觉得更是一个综合性能的考量,不象选个人电脑做些benchmark就能横向比较主机的性能了。之前的很多对盛大云和阿里云性能测试的文章,都是用测试个人电脑的方法来测试一种整体的服务,我认为是不全面的。 首先大多数服务器是运行特定的应用的,所以我们有条件观察服务器的综合性能(包括网络,IO等)对特定应用的影响。就好比如果我的个人电脑只是用来玩“现代战争",我根本不在乎我电脑的CPU 如何如何,只要在最便宜的价格内达到最高的游戏FPS就可以了。 这就是为什么我对盛大和阿里的CPU的benchmark不感兴趣,而只对包括CPU在内的整个环境对我的应用有什么影响感兴趣。 其次,我的问题更多来自于两者采用virtualization类型(para-virtualization vs full-virtualization) 的区别。对于阿里云,它支持的所有操作系统都有支持para-virtualization的内核,而它却偏偏采用了 full-virtualization。我相信阿里一定有它的原因,只是我不明白其中的缘由,希望有人出来能说明一下。 ------------------------- 回9楼tftaxis的帖子 对不起tftaxis, 我还真没有注意到你以前的帖子,如有冒犯请勿当真。 不过我还是那句话,Unixbench是测试单个主机的综合性能。你说的很对 “一般网站除了对CPU、内存、硬盘、带宽,还有什么需求”, 而你的benchmark里恰恰没有“带宽”的评测。 况且这个测试是在主机上进行的,是内部性能,而对于网站来说,更多关注的是从外部到主机的性能表现,你说对吗? 最后,您的测试对大家了解主机性能很有帮助,而我只是想知道我的应用在两种环境下的性能表现。

ap1191r2t 2019-12-02 03:12:44 0 浏览量 回答数 0

阿里云试用中心,为您提供0门槛上云实践机会!

0元试用32+款产品,最高免费12个月!拨打95187-1,咨询专业上云建议!

回答

之前在做直播的时候需要使用到内录功能,比如经常看到游戏主播在直播玩游戏,游戏的声音不是通过MIC录制的,而是内录完成的。故在此记录一下。 相信大家都很熟悉Android如果录音的了: int frequency = 44100;        int audioEncoding = AudioFormat.ENCODING_PCM_16BIT;        int channelConfiguration = AudioFormat.CHANNEL_CONFIGURATION_MONO;        int minBufferSize = AudioRecord.getMinBufferSize(frequency, channelConfiguration,    audioEncoding);        int audioSource = MediaRecorder.AudioSource.MIC;AudioRecord audioRecord = new AudioRecord(audioSource, frequency,channelConfiguration, audioEncoding, minBufferSize);audioRecord.startRecording();... AudioSource输入源介绍 项目 介绍 权限 DEFAULT    默认。在源码 system/media/audio/include/system/audio.h配置默认项    无     MIC    麦克风    无     VOICE_UPLINK    电话录音上行线路    android.permission.CAPTURE_AUDIO_OUTPUT,系统权限不允许第三方app使用     VOICE_DOWNLINK    电话录音下行线路    android.permission.CAPTURE_AUDIO_OUTPUT,系统权限不允许第三方app使用     VOICE_CALL    电话录音上下线路    android.permission.CAPTURE_AUDIO_OUTPUT,系统权限不允许第三方app使用     CAMCORDER    摄像头的麦克风    无     VOICE_RECOGNITION    语音识别    无     VOICE_COMMUNICATION    网络电话    无     REMOTE_SUBMIX    传输到远程的音频混合流。默认情况下如何用该项录音,本地扬声器或者耳机的声音将会被截走    android.permission.CAPTURE_AUDIO_OUTPUT,系统权限不允许第三方app使用     好了,现在我们知道了REMOTE_SUBMIX可以实现内录功能了。有两点比较麻烦: 需要系统权限 会截走扬声器和耳机的声音,也就是说再录音时本地无法播放声音 系统权限问题 这个对我来说比较好办,因为我是直接在android设备板子上开发,可以直接使用系统签名编译。首先在AndroidManifest.xml添加android:sharedUserId="android.uid.system"其次, 第一种方法: adb shell 执行:signapk.jar platform.x509.pem platform.pk8 app-unsigned.apk signed.apkadb push signed.apk /system/app 第二种方法: 编写Android.mk : 设置签名为platform LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS) LOCAL_MODULE_TAGS := optional LOCAL_SRC_FILES := $(call all-java-files-under, src) LOCAL_PACKAGE_NAME := YourApp LOCAL_CERTIFICATE := platform LOCAL_PROGUARD_FLAG_FILES := proguard.flagsinclude $(BUILD_PACKAGE)include $(call all-makefiles-under,$(LOCAL_PATH)) 截走扬声器和耳机的声音问题 修改framework下av/services/audiopolicy/AudioPolicyManager.cpp audio_devices_t AudioPolicyManager::getDeviceForStrategy(routing_strategy strategy,                                                             bool fromCache) getDeviceForStrategy方法下找到 if (mAvailableOutputDevices.getDevice(AUDIO_DEVICE_OUT_REMOTE_SUBMIX, String8("0")) != 0) {       device2 = availableOutputDeviceTypes & AUDIO_DEVICE_OUT_REMOTE_SUBMIX; } 修改为 if (mAvailableOutputDevices.getDevice(AUDIO_DEVICE_OUT_REMOTE_SUBMIX, String8("0")) != 0) {       device2 = availableOutputDeviceTypes & AUDIO_DEVICE_OUT_REMOTE_SUBMIX;       device2 |= (availableOutputDeviceTypes & AUDIO_DEVICE_OUT_WIRED_HEADPHONE);       device2 |= (availableOutputDeviceTypes & AUDIO_DEVICE_OUT_SPEAKER); } 意思是声音输出的设备添加了耳机和扬声器,这里可根据实际情况设置。至此,将最开始的录音代码 int audioSource = MediaRecorder.AudioSource.MIC; 改成 int audioSource = MediaRecorder.AudioSource.REMOTE_SUBMIX; 就可以实现内录功能了。<br/> ps: 在不修改源码的情况下,第三方app目前暂不知如何实现内录。 延伸阅读 5.0以后请求Android录屏默认会弹出确认框,但在系统app下请求就不会弹出了(具体可以去看源码)。这也是为了谷歌为了安全考虑。不过5.0的时候这个弹框却是一个大漏洞,被国内360发现了,给你们链接^_^Android 5.0屏幕录制漏洞       答案来源网络,供参考,希望对您有帮助

问问小秘 2019-12-02 03:00:15 0 浏览量 回答数 0

回答

1,架构师是什么?要想往架构师的方向发展首先要知道架构师是什么?架构师是一个既需要掌控整体又需要洞悉局部瓶颈并依据具体的业务场景给出解决方案的团队领导型人物。一个架构师得需要足够的想像力,能把各种目标需求进行不同维度的扩展,为目标客户提供更为全面的需求清单。架构师在软件开发的整个过程中起着很重要的作用。说的详细一些,架构师就是确认和评估系统需求,给出开发规范,搭建系统实现的核心构架,并澄清技术细节、扫清主要难点的技术人员。主要着眼于系统的“技术实现”。2,架构师的任务架构师的主要任务不是从事具体的软件程序的编写,而是从事更高层次的开发构架工作。他必须对开发技术非常了解,并且需要有良好的组织管理能力。可以这样说,一个架构师工作的好坏决定了整个软件开发项目的成败。在成为Java架构师之前,应当先成为Java工程师。熟练使用各种框架,并知道它们实现的原理。jvm虚拟机原理、调优,懂得jvm能让你写出性能更好的代码;池技术,什么对象池,连接池,线程池……Java反射技术,写框架必备的技术,遇到有严重的性能问题,替代方案java字节码技术;nio,没什么好说的,值得注意的是"直接内存"的特点,使用场景;java多线程同步异步;java各种集合对象的实现原理,了解这些可以让你在解决问题时选择合适的数据结构,高效的解决问题,比如hashmap的实现原理,好多五年以上经验的人都弄不清楚,还有为什扩容时有性能问题?不弄清楚这些原理,就写不出高效的代码,还会认为自己做的很对;总之一句话,越基础的东西越重要,很多人认为自己会用它们写代码了,其实仅仅是知道如何调用api而已,离会用还差的远。如果你立志做架构,首先打好基础,从最底层开始。然后发展到各种技术和语言,什么都要懂两点,要全面且不肤浅。为什么不是懂一点?你要看得透彻,必须尽量深入一些。别人懂一点,你要做架构师,必须再多懂一点。比如你发现golang很流行,别人可能写一个helloworld就说自己玩过golang,但你至少要尝试写一个完整的应用。不肯下苦功,如何高人一头?另外你要非常深入地了解至少一门语言,如果你的目标是java,就学到极致,作为敲门砖,先吃饱了才能谈理想。3,架构师都是从码农过来的而Java学到极致势必涉及到设计模式,算法和数据结构,多线程,文件及网络IO,数据库及ORM,不一而足。这些概念放之一切语言都适用。先精一门,为全面且不肤浅打基础。另外就是向有经验的架构师学习,和小伙伴们讨论辩论争论。其实最重要的能力就是不断学习。在思考新的技术是否能更好地解决你们遇到的问题之前,你首先得知道并了解新的技术。架构师都是从码农过来的,媳妇熬成婆。千万不要成为不写代码的架构师,有些公司专门产不写技术的架构师。所谓架构师,只是功底深厚的程序员而已。个人认为应该扎扎实实学习基础知识,学习各种规范,架构,需要广泛的知识面,懂的东西越多视野越开阔,设计的东西当然会越好越全面。成为架构师需要时间的积累的,不但要知其然还要知其所以然。平时的一点一滴你感觉不到特别用处,但某天你会发现所有东西都没有白学的。4,架构师知识体系下面是我总结多年经验开发的架构师知识体系一、分布式架构架构分布式的英文( Distributed computing 分布式计算技术)的应用和工具,成熟目前的技术包括 J2EE,CORBA 和 .NET(DCOM),这些技术牵扯的内容非常广,相关的书籍也非常多。本文不介绍这些技术的内容,也没有涉及这些技术的细节,只是从各种分布式系统平台产生的背景和在软件开发中应用的情况来探讨它们的主要异同。分布式系统是一个古老而宽泛的话题,而近几年因为“大数据”概念的兴起,又焕发出了新的青春与活力。除此之外,分布式系统也是一门理论模型与工程技法。并重的学科内容相比于机器学习这样的研究方向,学习分布式系统的同学往往会感觉:“入门容易,深入难”的确,学习分布式系统几乎不需要太多数学知识。分布式系统是一个复杂且宽泛的研究领域,学习一两门在线课程,看一两本书可能都是不能完全覆盖其所有内容的。总的来说,分布式系统要做的任务就是把多台机器有机的组合,连接起来,让其协同完成一件任务,可以是计算任务,也可以是存储任务。如果一定要给近些年的分布式系统研究做一个分类的话,我个人认为大概可以包括三大部分:分布式存储系统分布式计算系统分布式管理系统二、微服务当前微服务很热,大家都号称在使用微服务架构,但究竟什么是微服务架构?微服务架构是不是发展趋势?对于这些问题,我们都缺乏清楚的认识。为解决单体架构下的各种问题,微服务架构应运而生。与其构建一个臃肿庞大,难以驯服的怪兽,还不如及早将服务拆分。微服务的核心思想便是服务拆分与解耦,降低复杂性。微服务强调将功能合理拆解,尽可能保证每个服务的功能单一,按照单一责任原则(Single Responsibility Principle)明确角色。将各个服务做轻,从而做到灵活,可复用,亦可根据各个服务自身资源需求,单独布署,单独作横向扩展。微服务架构(Microservice Architecture)是一种架构概念,旨在通过将功能分解到各个离散的服务中以实现对解决方案的解耦。你可以将其看作是在架构层次而非获取服务的类上应用很多 SOLID 原则。微服务架构是个很有趣的概念,它的主要作用是将功能分解到离散的各个服务当中,从而降低系统的耦合性,并提供更加灵活的服务支持。概念:把一个大型的单个应用程序和服务拆分为数个甚至数十个的支持微服务,它可扩展单个组件而不是整个的应用程序堆栈,从而满足服务等级协议。定义:围绕业务领域组件来创建应用,这些应用可独立地进行开发,管理和迭代在分散的组件中使用云架构和平台式部署,管理和服务功能,使产品交付变得更加简单。本质:用一些功能比较明确,业务比较精练的服务去解决更大,更实际的问题。三、源码分析从字面意义上来讲,源文件的英文指一个文件,指源代码的集合。源代码则是一组具有特定意义的可以实现特定功能的字符(程序开发代码)。源码分析是一种临界知识,掌握了这种临界知识,能不变应万变,源码分析对于很多人来说很枯燥,生涩难懂。源码阅读,我觉得最核心有三点:技术基础+强烈的求知欲+耐心。我认为是阅读源码的最核心驱动力我见到绝大多数程序员,对学习的态度,基本上就是这几个层次(很偏激哦):1,只关注项目本身,不懂就百度一下。2,除了做好项目,还会阅读和项目有关的技术书籍,看维基百科。3,除了阅读和项目相关的书外,还会阅读IT行业的书,比如学的Java的时,还会去了解函数语言,如LISP。4,找一些开源项目看看,大量试用第三方框架,还会写写演示。5,阅读基础框架,J2EE 规范,调试服务器内核。大多数程序都是第1种,到第5种不光需要浓厚的兴趣,还需要勇气:?我能读懂吗其实,你能够读懂的耐心,真的很重要。因为你极少看到阅读源码的指导性文章或书籍,也没有人要求或建议你读。你读的过程中经常会卡住,而一卡主可能就陷进了迷宫这时,你需要做的,可能是暂时中断一下,再从外围看看它:如API结构,框架的设计图。四、工具使用工欲善其事必先利其器,工具对 Java 的的程序员的重要性不言而喻现在有很多库,实用工具和程序任的 Java 的开发人员选择。下图列出的工具都是程序员必不可少的工具五、性能优化不管是应付前端面试还是改进产品体验,性能优化都是躲不开的话题。优化的目的是让用户有“快”的感受,那如何让用户感受到快呢?加载速度真的很快,用户打开输入网址按下回车立即看到了页面加载速度并没有变快,但用户感觉你的网站很快性能优化取决于多个因素,包括垃圾收集,虚拟机和底层操作系统(OS)设置。有多个工具可供开发人员进行分析和优化时使用,你可以通过阅读爪哇工具的源代码优化和分析来学习和使用它们。必须要明白的是,没有两个应用程序可以使用相同的优化方式,也没有完美的优化的 Java 应用程序的参考路径。使用最佳实践并且坚持采用适当的方式处理性能优化。想要达到真正最高的性能优化,你作为一个 Java 的开发人员,需要对 Java 的虚拟机(JVM)和底层操作系统有正确的理解。性能优化,简而言之,就是在不影响系统运行正确性的前提下,使之运行地更快,完成特定功能所需的时间更短。性能问题永远是永恒的主题之一,而优化则更需要技巧。Java程序员如何学习才能快速入门并精通呢?当真正开始学习的时候难免不知道从哪入手,导致效率低下影响继续学习的信心。但最重要的是不知道哪些技术需要重点掌握,学习时频繁踩坑,最终浪费大量时间,所以有一套实用的视频课程用来跟着学习是非常有必要的。为了让学习变得轻松、高效,今天给大家免费分享一套阿里架构师传授的一套教学资源。帮助大家在成为架构师的道路上披荆斩棘。这套视频课程详细讲解了(Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化、分布式架构)等这些成为架构师必备的内容!而且还把框架需要用到的各种程序进行了打包,根据基础视频可以让你轻松搭建分布式框架环境,像在企业生产环境一样进行学习和实践。

auto_answer 2019-12-02 01:51:27 0 浏览量 回答数 0

回答

当黑客入侵一台主机后,会想方设法保护自己的“劳动成果”,因此会在肉鸡上留下种种后门来长时间得控制肉鸡,其中使用最多的就是账户隐藏技术。在肉鸡上建立一个隐藏的账户,以备需要的时候使用。账户隐藏技术可谓是最隐蔽的后门,一般用户很难发现系统中隐藏账户的存在,因此危害性很大,本文就对隐藏账户这种黑客常用的技术进行揭密。在隐藏系统账户之前,我们有必要先来了解一下如何才能查看系统中已经存在的账户。在系统中可以进入“命令提示符”,控制面板的“计算机管理”,“注册表”中对存在的账户进行查看,而管理员一般只在“命令提示符”和“计算机管理”中检查是否有异常,因此如何让系统账户在这两者中隐藏将是本文的重点。一、“命令提示符”中的阴谋其实,制作系统隐藏账户并不是十分高深的技术,利用我们平时经常用到的“命令提示符”就可以制作一个简单的隐藏账户。点击“开始”→“运行”,输入“CMD”运行“命令提示符”,输入“net user piao$ 123456 /add”,回车,成功后会显示“命令成功完成”。接着输入“net localgroup administrators piao$ /add”回车,这样我们就利用“命令提示符”成功得建立了一个用户名为“piao$”,密码为“123456”的简单“隐藏账户”,并且把该隐藏账户提升为了管理员权限。我们来看看隐藏账户的建立是否成功。在“命令提示符”中输入查看系统账户的命令“net user”,回车后会显示当前系统中存在的账户。从返回的结果中我们可以看到刚才我们建立的“piao$”这个账户并不存在。接着让我们进入控制面板的“管理工具”,打开其中的“计算机”,查看其中的“本地用户和组”,在“用户”一项中,我们建立的隐藏账户“piao$”暴露无疑。 可以总结得出的结论是:这种方法只能将账户在“命令提示符”中进行隐藏,而对于“计算机管理”则无能为力。因此这种隐藏账户的方法并不是很实用,只对那些粗心的管理员有效,是一种入门级的系统账户隐藏技术。二、在“注册表”中玩转账户隐藏从上文中我们可以看到用命令提示符隐藏账户的方法缺点很明显,很容易暴露自己。那么有没有可以在“命令提示符”和“计算机管理”中同时隐藏账户的技术呢?答案是肯定的,而这一切只需要我们在“注册表”中进行一番小小的设置,就可以让系统账户在两者中完全蒸发。1、峰回路转,给管理员注册表操作权限 在注册表中对系统账户的键值进行操作,需要到“HKEY_LOCAL_MACHINE\SAM\SAM”处进行修改,但是当我们来到该处时,会发现无法展开该处所在的键值。这是因为系统默认对系统管理员给予“写入D AC”和“读取控制”权限,没有给予修改权限,因此我们没有办法对“SAM”项下的键值进行查看和修改。不过我们可以借助系统中另一个“注册表编辑器”给管理员赋予修改权限。点击“开始”→“运行”,输入“regedt32.exe”后回车,随后会弹出另一个“注册表编辑器”,和我们平时使用的“注册表编辑器”不同的是它可以修改系统账户操作注册表时的权限(为便于理解,以下简称regedt32.exe)。在regedt32.exe中来到“HKEY_LOCAL_MACHINE\SAM\SAM”处,点击“安全”菜单→“权限”,在弹出的“SAM的权限”编辑窗口中选中“administrators”账户,在下方的权限设置处勾选“完全控制”,完成后点击“确定”即可。然后我们切换回“注册表编辑器”,可以发现“HKEY_LOCAL_MACHINE\SAM\SAM”下面的键值都可以展开了。提示:上文中提到的方法只适用于Windows NT/2000系统。在Windows XP系统中,对于权限的操作可以直接在注册表中进行,方法为选中需要设置权限的项,点击右键,选择“权限”即可。2、偷梁换柱,将隐藏账户替换为管理员 成功得到注册表操作权限后,我们就可以正式开始隐藏账户的制作了。来到注册表编辑器的“HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\Names”处,当前系统中所有存在的账户都会在这里显示,当然包括我们的隐藏账户。点击我们的隐藏账户“piao$”,在右边显示的键值中的“类型”一项显示为0x3e9,向上来到“HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\”处,可以找到“000003E9”这一项,这两者是相互对应的,隐藏账户“piao$”的所有信息都在“000003E9”这一项中。同样的,我们可以找到“administrator”账户所对应的项为“000001F4”。将“piao$”的键值导出为piao$.reg,同时将“000003E9”和“000001F4”项的F键值分别导出为user.reg,admin.reg。用“记事本”打开admin.reg,将其中“F”值后面的内容复制下来,替换user.reg中的“F”值内容,完成后保存。接下来进入“命令提示符”,输入“net user piao$ /del”将我们建立的隐藏账户删除。最后,将piao$.reg和user.reg导入注册表,至此,隐藏账户制作完成。3、过河拆桥,切断删除隐藏账户的途径虽然我们的隐藏账户已经在“命令提示符”和“计算机管理”中隐藏了,但是有经验的系统管理员仍可能通过注册表编辑器删除我们的隐藏账户,那么如何才能让我们的隐藏账户坚如磐石呢?打开“regedt32.exe”,来到“HKEY_LOCAL_MACHINE\SAM\SAM”处,设置“SAM”项的权限,将“administrators”所拥有的权限全部取消即可。当真正的管理员想对“HKEY_LOCAL_MACHINE\SAM\SAM”下面的项进行操作的时候将会发生错误,而且无法通过“regedt32.exe”再次赋予权限。这样没有经验的管理员即使发现了系统中的隐藏账户,也是无可奈何的。三.专用工具,使账户隐藏一步到位虽然按照上面的方法可以很好得隐藏账户,但是操作显得比较麻烦,并不适合新手,而且对注册表进行操作危险性太高,很容易造成系统崩溃。因此我们可以借助专门的账户隐藏工具来进行隐藏工作,使隐藏账户不再困难,只需要一个命令就可以搞定。我们需要利用的这款工具名叫“HideAdmin”,下载下来后解压到c盘。然后运行“命令提示符”,输入“HideAdmin piao$ 123456”即可,如果显示“Create a hiden Administrator piao$ Successed!”,则表示我们已经成功建立一个账户名为piao$,密码为123456的隐藏账户。利用这款工具建立的账户隐藏效果和上文中修改注册表的效果是一样的。四、把“隐藏账户”请出系统隐藏账户的危害可谓十分巨大。因此我们有必要在了解了账户隐藏技术后,再对相应的防范技术作一个了解,把隐藏账户彻底请出系统1、添加“$”符号型隐藏账户对于这类隐藏账户的检测比较简单。一般黑客在利用这种方法建立完隐藏账户后,会把隐藏账户提升为管理员权限。那么我们只需要在“命令提示符”中输入“net localgroup administrators”就可以让所有的隐藏账户现形。如果嫌麻烦,可以直接打开“计算机管理”进行查看,添加“$”符号的账户是无法在这里隐藏的。2、修改注册表型隐藏账户由于使用这种方法隐藏的账户是不会在“命令提示符”和“计算机管理”中看到的,因此可以到注册表中删除隐藏账户。来到“HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\Names”,把这里存在的账户和“计算机管理”中存在的账户进行比较,多出来的账户就是隐藏账户了。想要删除它也很简单,直接删除以隐藏账户命名的项即可。3、无法看到名称的隐藏账户如果黑客制作了一个修改注册表型隐藏账户,在此基础上删除了管理员对注册表的操作权限。那么管理员是无法通过注册表删除隐藏账户的,甚至无法知道黑客建立的隐藏账户名称。不过世事没有绝对,我们可以借助“组策略”的帮助,让黑客无法通过隐藏账户登陆。点击“开始”→“运行”,输入“gpedit.msc”运行“组策略”,依次展开“计算机配置”→“Windows 设置”→“安全设置”→“本地策略”→“审核策略”,双击右边的“审核策略更改”,在弹出的设置窗口中勾选“成功”,然后点“确定”。对“审核登陆事件”和“审核过程追踪”进行相同的设置。4、开启登陆事件审核功能进行登陆审核后,可以对任何账户的登陆操作进行记录,包括隐藏账户,这样我们就可以通过“计算机管理”中的“事件查看器”准确得知隐藏账户的名称,甚至黑客登陆的时间。即使黑客将所有的登陆日志删除,系统还会记录是哪个账户删除了系统日志,这样黑客的隐藏账户就暴露无疑了。5、通过事件查看器找到隐藏帐户得知隐藏账户的名称后就好办了,但是我们仍然不能删除这个隐藏账户,因为我们没有权限。但是我们可以在“命令提示符”中输入“net user 隐藏账户名称 654321”更改这个隐藏账户的密码。这样这个隐藏账户就会失效,黑客无法再用这个隐藏账户登陆。

KB小秘书 2019-12-02 01:27:58 0 浏览量 回答数 0

回答

从业余程序员到职业程序员 程序员刚入行时,我觉得最重要的是把自己培养成职业的程序员。 我的程序员起步比同龄人都晚了很多,更不用说现在的年轻人了。我大学读的是生物专业,在上大学前基本算是完全没接触过计算机。军训的时候因为很无聊,我和室友每天跑去学校的机房玩,我现在还印象很深刻,我第一次走进机房的时候,别人问,你是要玩windows,还是dos,我那是完全的一抹黑。后来就只记得在机房一堆人都是在练习盲打,军训完,盲打倒是练的差不多了,对计算机就这么产生了浓厚的兴趣,大一的时候都是玩组装机,捣鼓了一些,对计算机的硬件有了那么一些了解。 到大二后,买了一些书开始学习当时最火的网页三剑客,学会了手写HTML、PS的基本玩法之类的,课余、暑假也能开始给人做做网站什么的(那个时候做网站真的好赚钱),可能那样过了个一年左右,做静态的网页就不好赚钱了,也不好找实习工作,于是就开始学asp,写些简单的CRUD,做做留言板、论坛这些动态程序,应该算是在这个阶段接触编程了。 毕业后加入了深圳的一家做政府行业软件的公司,一个非常靠谱和给我空间的Leader,使得自己在那几年有了不错的成长,终于成了一个职业的程序员。 通常来说,业余或半职业的程序员,多数是1个人,或者很小的一个团队一起开发,使得在开发流程、协作工具(例如jira、cvs/svn/git等)、测试上通常会有很大的欠缺,而职业的程序员在这方面则会专业很多。另外,通常职业的程序员做的系统都要运行较长的时间,所以在可维护性上会特别注意,这点我是在加入阿里后理解更深的。一个运行10年的系统,和一个写来玩玩的系统显然是有非常大差别的。 这块自己感觉也很难讲清楚,只能说模模糊糊有个这样的概念。通常在有兴趣的基础上,从业余程序员跨越到成为职业程序员我觉得不会太难。 编程能力的成长 作为程序员,最重要的能力始终是编程能力,就我自己的感受而言,我觉得编程能力的成长主要有这么几个部分: 1、编程能力初级:会用 编程,首先都是从学习编程语言的基本知识学起的,不论是什么编程语言,有很多共同的基本知识,例如怎么写第一个Hello World、if/while/for、变量等,因此我比较建议在刚刚开始学一门编程语言的时候,看看编程语言自己的一些文档就好,不要上来就去看一些高阶的书。我当年学Java的时候上来就看Think in Java、Effective Java之类的,真心好难懂。 除了看文档以外,编程是个超级实践的活,所以一定要多写代码,只有这样才能真正熟练起来。这也是为什么我还是觉得在面试的时候让面试者手写代码是很重要的,这个过程是非常容易判断写代码的熟悉程度的。很多人会说由于写代码都是高度依赖IDE的,导致手写很难,但我绝对相信写代码写了很多的人,手写一段不太复杂的、可运行的代码是不难的。即使像我这种三年多没写过代码的人,让我现在手写一段不太复杂的可运行的Java程序,还是没问题的,前面N年的写代码生涯使得很多东西已经深入骨髓了。 我觉得编程能力初级这个阶段对于大部分程序员来说都不会是问题,勤学苦练,是这个阶段的核心。 2、编程能力中级:会查和避免问题 除了初级要掌握的会熟练的使用编程语言去解决问题外,中级我觉得首先是提升查问题的能力。 在写代码的过程中,出问题是非常正常的,怎么去有效且高效的排查问题,是程序员群体中通常能感受到的大家在编程能力上最大的差距。 解决问题能力强的基本很容易在程序员群体里得到很高的认可。在查问题的能力上,首先要掌握的是一些基本的调试技巧,好用的调试工具,在Java里有JDK自带的jstat、jmap、jinfo,不在JDK里的有mat、gperf、btrace等。工欲善其事必先利其器,在查问题上是非常典型的,有些时候大家在查问题时的能力差距,有可能仅仅是因为别人比你多知道一个工具而已。 除了调试技巧和工具外,查问题的更高境界就是懂原理。一个懂原理的程序员在查问题的水平上和其他程序员是有明显差距的。我想很多的同学应该能感受到,有些时候查出问题的原因仅仅是因为有效的工具,知其然不知其所以然。 我给很多阿里的同学培训过Java排查问题的方法,在这个培训里,我经常也会讲到查问题的能力的培养最主要的也是熟练,多尝试给自己写一些会出问题的程序,多积极的看别人是怎么查问题的,多积极的去参与排查问题,很多最后查问题能力强的人多数仅仅是因为“无他,但手熟尔”。 我自己排查问题能力的提升主要是在2009年和2010年。那两年作为淘宝消防队(处理各种问题和故障的虚拟团队)的成员,处理了很多的故障和问题。当时消防队还有阿里最公认的技术大神——多隆,我向他学习到了很多排查问题的技巧。和他比,我排查问题的能力就是初级的那种。 印象最深刻的是一次我们一起查一个应用cpu us高的问题,我们两定位到是一段代码在某种输入参数的时候会造成cpu us高的原因后,我能想到的继续查的方法是去生产环境抓输入参数,然后再用参数来本地debug看是什么原因。但多隆在看了一会那段代码后,给了我一个输入参数,我拿这个参数一运行,果然cpu us很高!这种case不是一次两次。所以我经常和别人说,我是需要有问题场景才能排查出问题的,但多隆是完全有可能直接看代码就能看出问题的,这是本质的差距。 除了查问题外,更厉害的程序员是在写代码的过程就会很好的去避免问题。大家最容易理解的就是在写代码时处理各种异常情况,这里通常也是造成程序员们之间很大的差距的地方。 写一段正向逻辑的代码,大部分情况下即使有差距,也不会太大,但在怎么很好的处理这个过程中有可能出现的异常上,这个时候的功力差距会非常明显。很多时候一段代码里处理异常逻辑的部分都会超过正常逻辑的代码量。 我经常说,一个优秀程序员和普通程序员的差距,很多时候压根就不需要看什么满天飞的架构图,而只用show一小段的代码就可以。 举一个小case大家感受下。当年有一个严重故障,最后查出的原因是输入的参数里有一个是数组,把这个数组里的值作为参数去查数据库,结果前面输入了一个很大的数组,导致从数据库查了大量的数据,内存溢出了,很多程序员现在看都会明白对入参、出参的保护check,但类似这样的case我真的碰到了很多。 在中级这个阶段,我会推荐大家尽可能的多刻意的去培养下自己这两个方面的能力,成为一个能写出高质量代码、有效排查问题的优秀程序员。 3、编程能力高级:懂高级API和原理 就我自己的经历而言,我是在写了多年的Java代码后,才开始真正更细致的学习和掌握Java的一些更高级的API,我相信多数Java程序员也是如此。 我算是从2003年开始用Java写商业系统的代码,但直到在2007年加入淘宝后,才开始非常认真地学习Java的IO通信、并发这些部分的API。尽管以前也学过也写过一些这样的代码,但完全就是皮毛。当然,这些通常来说有很大部分的原因会是工作的相关性,多数的写业务系统的程序员可能基本就不需要用到这些,所以导致会很难懂这些相对高级一些的API,但这些API对真正的理解一门编程语言,我觉得至关重要。 在之前的程序员成长路线的文章里我也讲到了这个部分,在没有场景的情况下,只能靠自己去创造场景来学习好。我觉得只要有足够的兴趣,这个问题还是不大的,毕竟现在有各种开源,这些是可以非常好的帮助自己创造机会学习的,例如学Java NIO,可以自己基于NIO包一个框架,然后对比Netty,看看哪些写的是不如Netty的,这样会非常有助于真正的理解。 在学习高级API的过程中,以及排查问题的过程中,我自己越来越明白懂编程语言的运行原理是非常重要的,因此我到了后面的阶段开始学习Java的编译机制、内存管理、线程机制等。对于我这种非科班出身的而言,学这些会因为缺乏基础更难很多,但这些更原理性的东西学会了后,对自己的编程能力会有质的提升,包括以后学习其他编程语言的能力,学这些原理最好的方法我觉得是先看看一些讲相关知识的书,然后去翻看源码,这样才能真正的更好的掌握,最后是在以后写代码的过程中、查问题的过程中多结合掌握的原理,才能做到即使在N年后也不会忘。 在编程能力的成长上,我觉得没什么捷径。我非常赞同1万小时理论,在中级、高级阶段,如果有人指点或和优秀的程序员们共事,会好非常多。不过我觉得这个和读书也有点像,到了一定阶段后(例如高中),天分会成为最重要的分水岭,不过就和大部分行业一样,大部分的情况下都还没到拼天分的时候,只需要拼勤奋就好。 系统设计能力的成长 除了少数程序员会进入专深的领域,例如Linux Kernel、JVM,其他多数的程序员除了编程能力的成长外,也会越来越需要在系统设计能力上成长。 通常一个编程能力不错的程序员,在一定阶段后就会开始承担一个模块的工作,进而承担一个子系统、系统、跨多领域的更大系统等。 我自己在工作的第三年开始承担一个流程引擎的设计和实现工作,一个不算小的系统,并且也是当时那个项目里的核心部分。那个阶段我学会了一些系统设计的基本知识,例如需要想清楚整个系统的目标、模块的划分和职责、关键的对象设计等,而不是上来就开始写代码。但那个时候由于我是一个人写整个系统,所以其实对设计的感觉并还没有那么强力的感觉。 在那之后的几年也负责过一些系统,但总体感觉好像在系统设计上的成长没那么多,直到在阿里的经历,在系统设计上才有了越来越多的体会。(点击文末阅读原文,查看:我在系统设计上犯过的14个错,可以看到我走的一堆的弯路)。 在阿里有一次做分享,讲到我在系统设计能力方面的成长,主要是因为三段经历,负责专业领域系统的设计 -> 负责跨专业领域的专业系统的设计 -> 负责阿里电商系统架构级改造的设计。 第一段经历,是我负责HSF。HSF是一个从0开始打造的系统,它主要是作为支撑服务化的框架,是个非常专业领域的系统,放在整个淘宝电商的大系统来看,其实它就是一个很小的子系统,这段经历里让我最深刻的有三点: 1).要设计好这种非常专业领域的系统,专业的知识深度是非常重要的。我在最早设计HSF的几个框的时候,是没有设计好服务消费者/提供者要怎么和现有框架结合的,在设计负载均衡这个部分也反复了几次,这个主要是因为自己当时对这个领域掌握不深的原因造成的; 2). 太技术化。在HSF的阶段,出于情怀,在有一个版本里投入了非常大的精力去引进OSGi以及去做动态化,这个后来事实证明是个非常非常错误的决定,从这个点我才真正明白在设计系统时一定要想清楚目标,而目标很重要的是和公司发展阶段结合; 3). 可持续性。作为一个要在生产环境持续运行很多年的系统而言,怎么样让其在未来更可持续的发展,这个对设计阶段来说至关重要。这里最low的例子是最早设计HSF协议的时候,协议头里竟然没有版本号,导致后来升级都特别复杂;最典型的例子是HSF在早期缺乏了缺乏了服务Tracing这方面的设计,导致后面发现了这个地方非常重要后,全部落地花了长达几年的时间;又例如HSF早期缺乏Filter Chain的设计,导致很多扩展、定制化做起来非常不方便。 第二段经历,是做T4。T4是基于LXC的阿里的容器,它和HSF的不同是,它其实是一个跨多领域的系统,包括了单机上的容器引擎,容器管理系统,容器管理系统对外提供API,其他系统或用户通过这个来管理容器。这个系统发展过程也是各种犯错,犯错的主要原因也是因为领域掌握不深。在做T4的日子里,学会到的最重要的是怎么去设计这种跨多个专业领域的系统,怎么更好的划分模块的职责,设计交互逻辑,这段经历对我自己更为重要的意义是我有了做更大一些系统的架构的信心。 第三段经历,是做阿里电商的异地多活。这对我来说是真正的去做一个巨大系统的架构师,尽管我以前做HSF的时候参与了淘宝电商2.0-3.0的重大技术改造,但参与和自己主导是有很大区别的,这个架构改造涉及到了阿里电商众多不同专业领域的技术团队。在这个阶段,我学会的最主要的: 1). 子系统职责划分。在这种超大的技术方案中,很容易出现某些部分的职责重叠和冲突,这个时候怎么去划分子系统,就非常重要了。作为大架构师,这个时候要从团队的职责、团队的可持续性上去选择团队; 2). 大架构师最主要的职责是控制系统风险。对于这种超大系统,一定是多个专业领域的架构师和大架构师共同设计,怎么确保在执行的过程中对于系统而言最重要的风险能够被控制住,这是我真正的理解什么叫系统设计文档里设计原则的部分。 设计原则我自己觉得就是用来确保各个子系统在设计时都会遵循和考虑的,一定不能是虚的东西,例如在异地多活架构里,最重要的是如何控制数据风险,这个需要在原则里写上,最基本的原则是可接受系统不可用,但也要保障数据一致,而我看过更多的系统设计里设计原则只是写写的,或者千篇一律的,设计原则切实的体现了架构师对目标的理解(例如当时异地多活这个其实开始只是个概念,但做到什么程度才叫做到异地多活,这是需要解读的,也要确保在技术层面的设计上是达到了目标的),技术方案层面上的选择原则,并确保在细节的设计方案里有对于设计原则的承接以及执行; 3). 考虑问题的全面性。像异地多活这种大架构改造,涉及业务层面、各种基础技术层面、基础设施层面,对于执行节奏的决定要综合考虑人力投入、机器成本、基础设施布局诉求、稳定性控制等,这会比只是做一个小的系统的设计复杂非常多。 系统设计能力的成长,我自己觉得最重要的一是先在一两个技术领域做到专业,然后尽量扩大自己的知识广度。例如除了自己的代码部分外,还应该知道具体是怎么部署的,部署到哪去了,部署的环境具体是怎么样的,和整个系统的关系是什么样的。 像我自己,是在加入基础设施团队后才更加明白有些时候软件上做的一个决策,会导致基础设施上巨大的硬件、网络或机房的投入,但其实有可能只需要在软件上做些调整就可以避免,做做研发、做做运维可能是比较好的把知识广度扩大的方法。 第二点是练习自己做tradeoff的能力,这个比较难,做tradeoff这事需要综合各种因素做选择,但这也是所有的架构师最关键的,可以回头反思下自己在做各种系统设计时做出的tradeoff是什么。这个最好是亲身经历,听一些有经验的架构师分享他们选择背后的逻辑也会很有帮助,尤其是如果恰好你也在同样的挑战阶段,光听最终的架构结果其实大多数时候帮助有限。 技术Leader我觉得最好是能在架构师的基础上,后续注重成长的方面还是有挺大差别,就不在这篇里写了,后面再专门来写一篇。 程序员金字塔 我认为程序员的价值关键体现在作品上,被打上作品标签是一种很大的荣幸,作品影响程度的大小我觉得决定了金字塔的层次,所以我会这么去理解程序员的金字塔。 当然,要打造一款作品,仅有上面的两点能力是不够的,作品里很重要的一点是对业务、技术趋势的判断。 希望作为程序员的大伙,都能有机会打造一款世界级的作品,去为技术圈的发展做出贡献。 由于目前IT技术更新速度还是很快的,程序员这个行当是特别需要学习能力的。我一直认为,只有对程序员这个职业真正的充满兴趣,保持自驱,才有可能在这个职业上做好,否则的话是很容易淘汰的。 作者简介: 毕玄,2007年加入阿里,十多年来主要从事在软件基础设施领域,先后负责阿里的服务框架、Hbase、Sigma、异地多活等重大的基础技术产品和整体架构改造。

茶什i 2020-01-10 15:19:35 0 浏览量 回答数 0

问题

技术创业难?看他们如何玩转大数据与机器学习

福利达人 2019-12-01 21:17:03 2307 浏览量 回答数 0

问题

【iOS学习全家桶】190道iOS热门问题,阿里百位技术专家答疑解惑

管理贝贝 2019-12-01 20:07:23 5197 浏览量 回答数 1

问题

安卓与iOS百问,开发者系统指南

yq传送门 2019-12-01 20:14:48 27317 浏览量 回答数 26

问题

OSS新手视频教程!

聚小编 2019-12-01 21:04:47 52192 浏览量 回答数 21

问题

ES 在数据量很大的情况下(数十亿级别)如何提高查询效率啊?【Java问答学堂】28期

剑曼红尘 2020-05-28 09:45:28 15 浏览量 回答数 1

问题

【云计算的1024种玩法】拥有一个自己的论坛

琴瑟 2019-12-01 21:14:32 2380 浏览量 回答数 2

问题

大连沈阳源创会图文回顾及PPT分享? 400 报错

爱吃鱼的程序员 2020-06-04 15:19:59 1 浏览量 回答数 1

回答

首先,我们先来聊聊各类数据模型。下列相关信息参考自Emil Eifrem的博文及NoSQL数据库说明。文档类数据库传承:受Lotus Notes启发而来。数据模型:文档汇总,包括键-值汇总。实例: CouchDB, MongoDB优势: 数据建模自然、程序员易于上手、开发流程短、兼容网页模式、便于达成CRUD(即添加、查询、更新及删除的简称)。图形类数据库传承:来自 Euler 及图形理论。数据模型:节点及关系,二者结合能够保持键-值间的成对状态实例: AllegroGraph, InfoGrid, Neo4j优势:轻松玩转复杂的图形问题、处理速度快关系类数据库传承:源自 E. F. Codd在大型共享数据库中所提出的数据关系模型理论数据模型:以关系组为基础实例: VoltDB, Clustrix, MySQL优势:性能强大、联机事务处理系统扩展性好、支持SQL访问、视图直观、擅长处理交易关系、与程序员间的交互效果优异面向对象类数据库传承:源自图形数据库方面的研究成果数据模型: 对象实例: Objectivity, Gemstone优势:擅长处理复杂的对象模型、快速的键-值访问及键-功能访问并且兼具图形数据库的各类功能键-值存储传承: Amazon Dynamo中的paper概念及分布式hash表数据模型:对成对键-值的全局化汇总实例: Membase, Riak优势:尺寸掌控得当、擅长处理持续的小规模读写需求、速度快、程序员易于上手BigTable Clones传承自:谷歌BigTable中的paper概念数据模型:纵列群,即在某个表格模型中,每行在理论上至少可以有一套单独的纵列配置实例: HBase, Hypertable, Cassandra优势:尺寸掌控得当、擅长应对大规模写入负载、可用性高、支持多数据中心、支持映射简化数据结构类服务传承: 不明实例: Redis数据模型: 执行过程基于索引、列表、集合及字符串值优势:为数据库应用引入前所未有的新鲜血液网格类数据库传承:源自数据网格及元组空间研究数据模型:基于空间的构架实例: GigaSpaces, Coherence优势:优良的性能表现及上佳的交易处理扩展性我们该为自己的应用程序选择哪套方案?选择的关键在于重新思考我们的应用程序如何依据不同数据模型及不同产品进行有针对性的协同工作。即用正确的数据模型处理对应的现实任务、用正确的产品解决对应的现实问题。要探究哪类数据模型能够切实为我们的应用程序提供帮助,可以参考“到底NoSQL能在我们的工作中发挥什么作用?”一文。在这篇文章中,我试着将各种不同特性、不同功能的常用创建系统中的那些非常规的应用实例综合起来。将应用实例中的客观需求与我们的选择联系起来。这样大家就能够逆向分析出我们的基础架构中适合引入哪些产品。至于具体结论是NoSQL还是SQL,这已经不重要了。关注数据模型、产品特性以及自身需要。产品总是将各种不同的功能集中起来,因此我们很难单纯从某一类数据模型构成方式的角度直接找到最合用的那款。对功能及特性的需求存在优先级,只要对这种优先级具备较为清晰的了解,我们就能够做出最佳选择。如果我们的应用程序需要…复杂的交易:因为没人愿意承受数据丢失,或者大家更倾向于一套简单易用的交易编程模式,那么请考虑使用关系类或网格类数据库。例如:一套库存系统可能需要完整的ACID(即数据库事务执行四要素:原子性、一致性、隔离性及持久性)。顾客选中了一件产品却被告知没有库存了,这类情况显然容易引起麻烦。因为大多数时候,我们想要的并不是额外补偿、而只是选中的那件货品。若是以扩展性为优先,那么NoSQL或SQL都能应对自如。这种情况下我们需要关注那些支持向外扩展、分类处理、实时添加及移除设备、负载平衡、自动分类及整理并且容错率较高的系统。要求持续保有数据库写入功能,则需要较高的可用性。在这种情况下不妨关注BigTable类产品,其在一致性方面表现出众。如有大量的小规模持续读写要求,也就是说工作负载处于波动状态,可以关注文档类、键-值类或是那些提供快速内存访问功能的数据库。引入固态硬盘作为存储媒介也是不错的选择。以社交网络为实施重点的话,我们首先想到的就是图形类数据库;其次则是Riak这种关系类数据库。具备简单SQL功能的常驻内存式关系数据库基本上就可以满足小型数据集合的需求。Redis的集合及列表操作也能发挥作用。如果我们的应用程序需要…在访问模式及数据类型多种多样的情况下,文档类数据库比较值得考虑。这类数据库不仅灵活性好,性能表现也可圈可点。需要完备的脱机报告与大型数据集的话,首选产品是Hadoop,其次则是支持映射简化的其它产品。不过仅仅支持映射简化还不足以提供如Hadoop一样上佳的处理能力。如果业务跨越数个数据中心,Bigtable Clone及其它提供分布式选项的产品能够应对由地域距离引起的延迟现象,并具备较好的分区兼容性。要建立CRUD应用程序,首选文档类数据库。这类产品简化了从外部访问复杂数据的过程。需要内置搜索功能的话,推荐Riak。要对数据结构中的诸如列表、集合、队列及发布/订阅信息进行操作,Redis是不二之选。其具备的分布式锁定、覆盖式日志及其它各种功能都会在这类应用状态下大放异彩。将数据以便于处理的形式反馈给程序员(例如以JSON、HTTP、REST、Javascript这类形式),文档类数据库能够满足这类诉求,键-值类数据库效果次之。如果我们的应用程序需要…以直观视图的形式进行同步交易,并且具备实时数据反馈功能,VoltDB算得上一把好手。其数据汇总以及时间窗口化的表现都非常抢眼。若是需要企业级的支持及服务水平协议,我们需要着眼于特殊市场。Membase就是这样一个例子。要记录持续的数据流,却找不到必要的一致性保障?BigTable Clone交出了令人满意的答卷,因为其工作基于分布式文件系统,所以可以应对大量的写入操作。要让操作过程变得尽可能简单,答案一定在托管或平台即服务类方案之中。它们存在的目的正是处理这类要求。要向企业级客户做出推荐?不妨考虑关系类数据库,因为它们的长项就是具备解决繁杂关系问题的技术。如果需要利用动态方式建立对象之间的关系以使其具有动态特性,图形类数据库能帮上大忙。这类产品往往不需要特定的模式及模型,因此可以通过编程逐步建立。S3这类存储服务则是为支持大型媒体信息而生。相比之下NoSQL系统则往往无法处理大型二进制数据块,尽管MongoDB本身具备文件服务功能。如果我们的应用程序需要…有高效批量上传大量数据的需求?我们还是得找点有对应功能的产品。大多数产品都无法胜任,因为它们不支持批量操作。文档类数据库或是键-值类数据库能够利用流畅的模式化系统提供便捷的上传途径,因为这两类产品不仅支持可选区域、添加区域及删除区域,而且无需建立完整的模式迁移框架。要实现完整性限制,就得选择一款支持SQL DLL的产品,并在存储过程或是应用程序代码中加以运行。对于协同工作极为依赖的时候就要选择图形类数据库,因为这类产品支持在不同实体间的迅速切换。数据的移动距离较短且不必经过网络时,可以在预存程序中做出选择。预存程序在关系类、网格类、文档类甚至是键-值类数据库中都能找到。如果我们的应用程序需要…键-值存储体系擅长处理BLOB类数据的缓存及存储问题。缓存可以用于应对网页或复杂对象的存储,这种方案能够降低延迟、并且比起使用关系类数据库来说成本也较低。对于数据安全及工作状态要求较高的话可以尝试使用定制产品,并且在普遍的工作范畴(例如向上扩展、调整、分布式缓存、分区及反规范化等等)之外一定要为扩展性(或其它方面)准备解决方案。多样化的数据类型意味着我们的数据不能简单用表格来管理或是用纵列来划分,其复杂的结构及用户组成(也可能还有其它各种因素)只有文档类、键-值类以及Bigtable Clone这些数据库才能应付。上述各类数据库都具备极为灵活的数据类型处理能力。有时其它业务部门会需要进行快速关系查询,引入这种查询方式可以使我们不必为了偶尔的查看而重建一切信息。任何支持SQL的数据库都能实现这类查询。至于在云平台上运行并自动充分利用云平台的功能——这种美好的愿望目前还只能是愿望。如果我们的应用程序需要…支持辅助索引,以便通过不同的关键词查找数据,这要由关系类数据库及Cassandra推出的新辅助索引系统共同支持才能实现。创建一套处于不断增长中的数据集合(真正天文数量级的数据)然而访问量却并不大,那么Bigtable Clone是最佳选择,因为它会将数据妥善安排在分布式文件系统当中。需要整合其它类型的服务并确保数据库提供延后写入同步功能?那最好的实现方式是捕捉数据库的各种变化并将其反馈到其它系统中以保障运作的一致性。通过容错性检查了解系统对供电中断、隔离及其它故障情况的适应程度。若是当前的某项技术尚无人问津、自己却感觉大有潜力可挖,不妨在这条路上坚持走下去。这种情况有时会带来意料之外的美好前景。尝试在移动平台上工作并关注CouchDB及移动版couchbase。哪种方案更好?25%的状态改善尚不足以让我们下决心选择NoSQL。选择标准是否恰当取决于实际情况。这类标准对你的方案有指导意义吗?如果你的公司尚处于起步阶段,并且需要尽快推出自己的产品,这时不要再犹豫不决了。无论是SQL还是NoSQL都可以作为参考。

a123456678 2019-12-02 03:00:14 0 浏览量 回答数 0

问题

【Java问答学堂】10期 es 在数据量很大的情况下(数十亿级别)如何提高查询效率啊?

剑曼红尘 2020-04-28 14:16:56 0 浏览量 回答数 1

回答

面试官心理分析 这个问题是肯定要问的,说白了,就是看你有没有实际干过 es,因为啥?其实 es 性能并没有你想象中那么好的。很多时候数据量大了,特别是有几亿条数据的时候,可能你会懵逼的发现,跑个搜索怎么一下 5~10s,坑爹了。第一次搜索的时候,是 5~10s,后面反而就快了,可能就几百毫秒。 你就很懵,每个用户第一次访问都会比较慢,比较卡么?所以你要是没玩儿过 es,或者就是自己玩玩儿 demo,被问到这个问题容易懵逼,显示出你对 es 确实玩儿的不怎么样? 面试题剖析 说实话,es 性能优化是没有什么银弹的,啥意思呢?就是不要期待着随手调一个参数,就可以万能的应对所有的性能慢的场景。也许有的场景是你换个参数,或者调整一下语法,就可以搞定,但是绝对不是所有场景都可以这样。 性能优化的杀手锏——filesystem cache 你往 es 里写的数据,实际上都写到磁盘文件里去了,查询的时候,操作系统会将磁盘文件里的数据自动缓存到 filesystem cache 里面去。 es 的搜索引擎严重依赖于底层的 filesystem cache,你如果给 filesystem cache 更多的内存,尽量让内存可以容纳所有的 idx segment file 索引数据文件,那么你搜索的时候就基本都是走内存的,性能会非常高。 性能差距究竟可以有多大?我们之前很多的测试和压测,如果走磁盘一般肯定上秒,搜索性能绝对是秒级别的,1秒、5秒、10秒。但如果是走 filesystem cache,是走纯内存的,那么一般来说性能比走磁盘要高一个数量级,基本上就是毫秒级的,从几毫秒到几百毫秒不等。 这里有个真实的案例。某个公司 es 节点有 3 台机器,每台机器看起来内存很多,64G,总内存就是 64 * 3 = 192G。每台机器给 es jvm heap 是 32G,那么剩下来留给 filesystem cache 的就是每台机器才 32G,总共集群里给 filesystem cache 的就是 32 * 3 = 96G 内存。而此时,整个磁盘上索引数据文件,在 3 台机器上一共占用了 1T 的磁盘容量,es 数据量是 1T,那么每台机器的数据量是 300G。这样性能好吗? filesystem cache 的内存才 100G,十分之一的数据可以放内存,其他的都在磁盘,然后你执行搜索操作,大部分操作都是走磁盘,性能肯定差。 归根结底,你要让 es 性能要好,最佳的情况下,就是你的机器的内存,至少可以容纳你的总数据量的一半。 根据我们自己的生产环境实践经验,最佳的情况下,是仅仅在 es 中就存少量的数据,就是你要用来搜索的那些索引,如果内存留给 filesystem cache 的是 100G,那么你就将索引数据控制在 100G 以内,这样的话,你的数据几乎全部走内存来搜索,性能非常之高,一般可以在 1 秒以内。 比如说你现在有一行数据。id,name,age .... 30 个字段。但是你现在搜索,只需要根据 id,name,age 三个字段来搜索。如果你傻乎乎往 es 里写入一行数据所有的字段,就会导致说 90% 的数据是不用来搜索的,结果硬是占据了 es 机器上的 filesystem cache 的空间,单条数据的数据量越大,就会导致 filesystem cahce 能缓存的数据就越少。其实,仅仅写入 es 中要用来检索的少数几个字段就可以了,比如说就写入 es id,name,age 三个字段,然后你可以把其他的字段数据存在 mysql/hbase 里,我们一般是建议用 es + hbase 这么一个架构。 hbase 的特点是适用于海量数据的在线存储,就是对 hbase 可以写入海量数据,但是不要做复杂的搜索,做很简单的一些根据 id 或者范围进行查询的这么一个操作就可以了。从 es 中根据 name 和 age 去搜索,拿到的结果可能就 20 个 doc id,然后根据 doc id 到 hbase 里去查询每个 doc id 对应的完整的数据,给查出来,再返回给前端。 写入 es 的数据最好小于等于,或者是略微大于 es 的 filesystem cache 的内存容量。然后你从 es 检索可能就花费 20ms,然后再根据 es 返回的 id 去 hbase 里查询,查 20 条数据,可能也就耗费个 30ms,可能你原来那么玩儿,1T 数据都放 es,会每次查询都是 5~10s,现在可能性能就会很高,每次查询就是 50ms。 数据预热 假如说,哪怕是你就按照上述的方案去做了,es 集群中每个机器写入的数据量还是超过了 filesystem cache 一倍,比如说你写入一台机器 60G 数据,结果 filesystem cache 就 30G,还是有 30G 数据留在了磁盘上。 其实可以做数据预热。 举个例子,拿微博来说,你可以把一些大V,平时看的人很多的数据,你自己提前后台搞个系统,每隔一会儿,自己的后台系统去搜索一下热数据,刷到 filesystem cache 里去,后面用户实际上来看这个热数据的时候,他们就是直接从内存里搜索了,很快。 或者是电商,你可以将平时查看最多的一些商品,比如说 iphone 8,热数据提前后台搞个程序,每隔 1 分钟自己主动访问一次,刷到 filesystem cache 里去。 对于那些你觉得比较热的、经常会有人访问的数据,最好做一个专门的缓存预热子系统,就是对热数据每隔一段时间,就提前访问一下,让数据进入 filesystem cache 里面去。这样下次别人访问的时候,性能一定会好很多。 冷热分离 es 可以做类似于 mysql 的水平拆分,就是说将大量的访问很少、频率很低的数据,单独写一个索引,然后将访问很频繁的热数据单独写一个索引。最好是将冷数据写入一个索引中,然后热数据写入另外一个索引中,这样可以确保热数据在被预热之后,尽量都让他们留在 filesystem os cache 里,别让冷数据给冲刷掉。 你看,假设你有 6 台机器,2 个索引,一个放冷数据,一个放热数据,每个索引 3 个 shard。3 台机器放热数据 index,另外 3 台机器放冷数据 index。然后这样的话,你大量的时间是在访问热数据 index,热数据可能就占总数据量的 10%,此时数据量很少,几乎全都保留在 filesystem cache 里面了,就可以确保热数据的访问性能是很高的。但是对于冷数据而言,是在别的 index 里的,跟热数据 index 不在相同的机器上,大家互相之间都没什么联系了。如果有人访问冷数据,可能大量数据是在磁盘上的,此时性能差点,就 10% 的人去访问冷数据,90% 的人在访问热数据,也无所谓了。 document 模型设计 对于 MySQL,我们经常有一些复杂的关联查询。在 es 里该怎么玩儿,es 里面的复杂的关联查询尽量别用,一旦用了性能一般都不太好。 最好是先在 Java 系统里就完成关联,将关联好的数据直接写入 es 中。搜索的时候,就不需要利用 es 的搜索语法来完成 join 之类的关联搜索了。 document 模型设计是非常重要的,很多操作,不要在搜索的时候才想去执行各种复杂的乱七八糟的操作。es 能支持的操作就那么多,不要考虑用 es 做一些它不好操作的事情。如果真的有那种操作,尽量在 document 模型设计的时候,写入的时候就完成。另外对于一些太复杂的操作,比如 join/nested/parent-child 搜索都要尽量避免,性能都很差的。 分页性能优化 es 的分页是较坑的,为啥呢?举个例子吧,假如你每页是 10 条数据,你现在要查询第 100 页,实际上是会把每个 shard 上存储的前 1000 条数据都查到一个协调节点上,如果你有个 5 个 shard,那么就有 5000 条数据,接着协调节点对这 5000 条数据进行一些合并、处理,再获取到最终第 100 页的 10 条数据。 分布式的,你要查第 100 页的 10 条数据,不可能说从 5 个 shard,每个 shard 就查 2 条数据,最后到协调节点合并成 10 条数据吧?你必须得从每个 shard 都查 1000 条数据过来,然后根据你的需求进行排序、筛选等等操作,最后再次分页,拿到里面第 100 页的数据。你翻页的时候,翻的越深,每个 shard 返回的数据就越多,而且协调节点处理的时间越长,非常坑爹。所以用 es 做分页的时候,你会发现越翻到后面,就越是慢。 我们之前也是遇到过这个问题,用 es 作分页,前几页就几十毫秒,翻到 10 页或者几十页的时候,基本上就要 5~10 秒才能查出来一页数据了。 有什么解决方案吗? 不允许深度分页(默认深度分页性能很差) 跟产品经理说,你系统不允许翻那么深的页,默认翻的越深,性能就越差。 类似于 app 里的推荐商品不断下拉出来一页一页的 类似于微博中,下拉刷微博,刷出来一页一页的,你可以用 scroll api,关于如何使用,自行上网搜索。 scroll 会一次性给你生成所有数据的一个快照,然后每次滑动向后翻页就是通过游标 scroll_id 移动,获取下一页下一页这样子,性能会比上面说的那种分页性能要高很多很多,基本上都是毫秒级的。 但是,唯一的一点就是,这个适合于那种类似微博下拉翻页的,不能随意跳到任何一页的场景。也就是说,你不能先进入第 10 页,然后去第 120 页,然后又回到第 58 页,不能随意乱跳页。所以现在很多产品,都是不允许你随意翻页的,app,也有一些网站,做的就是你只能往下拉,一页一页的翻。 初始化时必须指定 scroll 参数,告诉 es 要保存此次搜索的上下文多长时间。你需要确保用户不会持续不断翻页翻几个小时,否则可能因为超时而失败。 除了用 scroll api,你也可以用 search_after 来做,search_after 的思想是使用前一页的结果来帮助检索下一页的数据,显然,这种方式也不允许你随意翻页,你只能一页页往后翻。初始化时,需要使用一个唯一值的字段作为 sort 字段。 往期回顾: 【Java问答学堂】1期 为什么使用消息队列?消息队列有什么优点和缺点?Kafka、ActiveMQ、RabbitMQ、RocketMQ 都有什么区别,以及适合哪些场景? 【Java问答学堂】2期 如何保证消息队列的高可用? 【Java问答学堂】3期 如何保证消息不被重复消费?或者说,如何保证消息消费的幂等性? 【Java问答学堂】4期 如何保证消息的可靠性传输?(如何处理消息丢失的问题?) 【Java问答学堂】5期 如何保证消息的顺序性? 【Java问答学堂】6期 如何解决消息队列的延时以及过期失效问题? 【Java问答学堂】7期 如果让你写一个消息队列,该如何进行架构设计? 【Java问答学堂】8期 es 的分布式架构原理能说一下么(es 是如何实现分布式的啊)? 【Java问答学堂】9期 es 写入数据的工作原理是什么啊?es 查询数据的工作原理是什么啊?

剑曼红尘 2020-04-28 14:17:05 0 浏览量 回答数 0

问题

UI自动化体系建设的创新实践

云效平台 2019-12-01 20:57:08 2984 浏览量 回答数 0

回答

【徐寅-南京大学- 阿里实习心得】 现在的心情非常复杂,因为小姐姐说看中了我的研究成果才让我参加这个实习心得分享的,但是我环顾四周只有我一个人的成果还没有发表出来!有一种青铜误入王者局的错乱感,不过在小姐姐大大的“不准退出”四个字面前,还得强撑着分享一点我的搬砖经历。 技术落地 来到菜鸟实习给了我在学校科研完全不一样的体验。这点感觉大家应该都深有体会。在学校是设计一个漂亮的齿轮,而在公司需要把这个齿轮安装到巨大的机器上,还要保证能够正常运行。结果就是来了菜鸟以后我花了很多时间在算法无关的事情上,比如说上线代码的编写和调试,比如说符合rtp接口的模型的训练和装载,比如和仓库运维人员的沟(扯)通(皮),争取更多的流量给我们的算法测试等等。在仓库这种大规模的现实复杂环境进行落地,为了数据的准确,只有到仓库实地考察测算以后你才能安下心来。 快乐工作 在我来阿里之前,关于阿里只听过马老师的“福报论”,因此以为可能会是一个从黑夜干到黑夜的血汗工厂。不过没想到实际上是10-6-5的八小时工作制,马老师的“福报论”只是鼓励大家要多奋斗而已。虽然大家都习惯了自愿加班到9点,不过有学长借的工牌,能够每天吃20块的夜宵。不过要是夜宵的种类能更丰富一点就好了,那种精致的小蛋糕总是可遇不可求。 回想一下,在杭州已经去过不少次西湖了,不过都是团建的活动。菜鸟ai部的团建应该是我最喜欢的团建类型了。在西湖的茶园美景边上,享受着清风和茶香,大家悠闲地玩着桌游或者聊天,让我这个ktv残疾人终于享受到了团建的快乐。 希望成果没事 半年多的实习一共攒出来两个工作,一个是偏理论的强化学习多目标环境自动分解技术,另一个是强化学习应用在仓库进行拣选单全局优化的工作,目前即将投稿Neurips20和NMI,希望能有一个好结果吧! 【杨亚涛-中山大学- 我的RI实习经历和感受】 现在回想还能非常清晰的记得当初实习第一天的那个场景,经过一系列入职流程之后,在杭州那高温的鬼天气下,我和师兄搬着台式机从四号楼走到了七号楼。由于我属于那种营养过剩的体型,机器搬到七号楼时,我的整个上衣都感觉被汗打湿了。进入大厅中,好不容易从被高温天气折磨的懵逼的状态下解脱出来。我又进入到了一个新的懵逼阶段。师兄带着我掠过了无数个工位之后转身进入了最角落的一个小房间。嗯,没错,我在实习的第一天就被拉进阿里特色的双十一项目室了。环顾着周围的大佬,心中还是有些胆怯。懵逼的在各位大佬面前做完自我介绍。 之后,在师兄的帮助下装完各种实验环境。师兄带着我到了走廊并在玻璃上描绘着大家做的事情以及我要做的事情。呃。。。懵逼过后的我开始接触了一个全新的令我再次懵逼的研究内容-Query改写。简单来说就是淘宝的用户常常输入的Query和商品标题描述之间会存在GAP。如何消除这个GAP是需要Query改写来做的。举个例子,用户搜索“大容量冰箱”,很多相关的商品标题不会用“大容量”来描述。会用多少升来写。单用用户输入的Query进行商品召回,会有很多相关产品会被忽略,并且还有可能面临不相关产品被召回展示。为了增加相关商品召回以及准确度,就需要对用户输入的原始Query进行改写。呃。。。听完师兄的介绍之后,师兄说希望能在双十一检验下效果。那个时候的感觉就是,哪有时间懵逼啊,抓紧做吧。 接下来,每天就在师兄发资料、阅读资料、实验、分析数据中度过。实验结果逐渐从坏变成了好。不过最后还是很遗憾没有在双十一时候检测模型效果。不过,在双十一之后师兄上线测试效果。还是有明显的改进的。在看到师兄周报中线上指标的提升之后,我的内心不由的升起了些许成就感。之后就开始了写论文投论文。经过一轮SIGIR的Reject之后,该工作被CIKM接收。总体谈下实习的感受。在来到阿里做RI实习之前,在实验室都是做一些偏向于研究性质的工作。呃。。。简单来说就是做了很多脱离应用场景的的工作。就是为了发论文而发论文。在阿里做的都是实用的、能够迅速看到实际效果的工作。既能够发论文,自己每次打开淘宝搜索时又能获得满满的成就感。 【张心怡-北京大学- 在阿里数据库科研团队实习是种怎样的体验?】 作者简介: 张心怡,北京大学前沿交叉研究院研究生,中国人民大学信息学院本科生。从18年底开始在POLARDB-X团队智能数据库组的实习,现已在阿里度过了一年多的时光。 心怡说,对于有志于数据库领域研究的小伙伴,这里是最好的学习和工作平台。 优秀的同行人,助我成长 我所在组的研究方向是智能数据库,目标是利用机器学习和统计优化等技术,实现数据库系统各个组件的自动优化,如存储引擎,并发控制,SQL优化器等,以减少系统成本,提升系统性能,以实现一个self-driving的数据库系统。 这是一个很有前景的方向。大四上学期,初来实习的我内心其实颇为忐忑,面对组里的同事前辈,“跟不上进度”成了我最担心的事情。然而,进入到工作状态之后,我心里的石头落了地:mentor给实习生安排的任务是循序渐进的,一次次讨论与指导,使我能够快速上手。经过和mentor的讨论,我选择把“智能查询优化”作为第一个研究项目,并且与大四学期的毕设结合,基于阿里线上平台的实际问题,展开研究。查询优化属于数据库比较底层的部分,之前我没有很深的了解。在开展研究的过程中,除了自己阅读文献,同事成为了我的“知识宝库”。遇到场景落地问题时,我会请教PolarDB-X优化器开发的同事,他们往往能够一针见血地指出实际问题。 我的成长离不开组里各位老师的帮助与分享,组内还会定期或不定期组织reading group,讲解工作成果与学界进展。在这里,你会发现身边的同事大多对深耕于某一领域,实力扎实,与他们交流会收获很多! 快乐工作,认真生活 “快乐工作,认真生活”,记得我刚刚入职时HR提到了这个观点,入职之后我发现这是阿里人身体力行的一句话。 在工作上,身边的人都很努力。在这种氛围的感召下,遇到难题,我也会情不自禁地在工位上多坐一会。暑期实习的时候,时常9点之后结束工作,打车回宿舍。生活上,团队里组织了丰富多彩的活动。聚餐已经成为了常规项目。工作间隙还可以去健身房锻炼一波,园区的按摩椅也成为了养生女孩的午休项目。印象最深的是团队组织的运动会,女子项目是平板支撑。听到这个消息之后,我基本每天都进行练习。运动会那天,杭州base、北京base、硅谷base进行了三地PK,在同事的加油下,我坚持了平板支持7分25秒,最后拿到了女子组冠军。 大家的工作与生活模式都很健康充实。在阿里,我见识到了工作发展的可持续性与优秀的团队交互模式。 阿里实习,带我打开科研大门 来到阿里之前,我是一个对科研比较懵懂的门外汉。特别幸运的是,在这里我遇到了很棒的mentor们指导我进行研究工作。不论是基础的代码风格还是研究思路、遇到的问题,mentor都会事无巨细地进行引导。以前我写代码,能跑起来、自己看得懂就行。 我在阿里提交的第一次merge request,有不少随意的空行和一些tricky且难以维护的逻辑。印象很深的是,当时mentor逐行写了comment指出问题。我认识到了代码的规范性和可维护性,以及别人是否能够理解自己的代码都是要考虑的问题。 2019年我从中国人民大学毕业,来到北京大学攻读数据科学研究生,感谢我的研究生导师崔斌老师对我在阿里实习的支持。当时,我在阿里研究的第一个课题,也画上了圆满的句号:我在NDBC(CCF National Database Conference)进行了课题报告,投稿论文并被评为best student paper。 我在阿里参与研究的第二个课题是数据库的智能调参。传统的数据库调参中DBA基于经验与尝试推荐参数值,而我们要做的是基于机器学习算法自动高效给出推荐。这个课题在进行过程中遇到了不少困难,算法的适用性与有效性是我们重点考虑的。在进行了很久的实验之后,会发现一些坑和问题,挫败感是有的,但是会马上被新的尝试与期待替代。 我发现,在这里的研究并不是为了学术灌水而做,有意义研究是问题导向的。mentor时常强调要找到可复现的场景和实际问题,这样才有实际意义。我的mentor base在硅谷,因为时差我时不时在早上收到消息和反馈,这成为了我起床开启新的一天的最大动力。mentor是我科研路上的引路人,也是并肩作战的战友,大家一起为了攻克问题而努力! 阿里的实习经历,帮我找到了打开科研大门的钥匙,让我从对科研的懵懵懂懂,到爱上了这一发现问题、攻克问题的过程。我希望将来能继续数据库领域的研究工作,在玉洁冰清的逻辑世界继续追寻。 【张亚斌-华南理工大学- 搬砖有感之研究吐槽】 首先声明这是一份任务性报告,大家如果赶去吃饭就可以先撤了。大家如果正在排队,可以一起吐槽一下。 作为一名即将硕士毕业&博士入学的研究生,我的研究经验有限,所以以下感悟吐槽仅供大家茶余饭后一笑,偶有雷同,纯属巧合~ 选题 提到学术研究,首当其冲的就是选题啦。选题并不仅仅是选择自己喜欢的热点题目,要综合考虑很多其他因素: - Supervisor or coauthor的研究背景。该项涉及到可预期的帮助 - 可使用的硬件资源。对于cv和ml来说,有的课题需要占用很大的计算资源,如 - -ImageNet based NAS。硬件资源基本决定了试错的时间成本。 - 研究课题的研究价值。当时火的课题,有些做1-2年之后可能就过时了,有些1-2年之后可能更加火。决定性因素很大程度是其潜在应用空间。 该研究课题在工业界的价值。在阿里工作实习的我们的研究课题当然和公司项目有千丝万缕的联系。 自己的兴趣。 除了上述的热点课题或潜在热点课题,还有如下的选择: 自创新的课题,俗称挖坑。该方面需要对整个研究领域比较全面和比较深入的理解,然后对整个研究领域的研究方向进行建设性的预测。一般都是大佬在挖坑。 方法 选好课题之后,得到对应的解决问题的方法一般经由如下步骤: 1. 发现问题的能力:一般来说,对于新问题会有一个或几个直接的处理方法,此时就是比手速的时候了;不过很多时候这里真正较量的是发现问题的能力。 2.发现问题的能力again:后续像我这样的大多数研究人员都是在该框架上修修改改,当然也会有大牛直接开辟新的basic pipelines。如果我们聚焦在对现有框架的修改,首先第一步要做的是分析现有框架有什么遗留问题,然后针对该问题设计改进方法。 3.Naïve idea:我们一般会发现其实做出少量改进并发表论文是相对容易的,因为simple idea是比较容易获得的:如 https://mp.weixin.qq.com/s/vnyra_xcg9D6NUNVpKtP0Q所调侃,单纯的做方法A+方法B,或者A方法用于B领域就可以实现(或许这就是多看论文的巨大优势?调侃脸)。不过对于非入门同学来说,该method combine的方式形同饮鸩止渴。 4.Mature idea:相对于直接将其他论文中的方法“借”为己用,借鉴其他论文方法提出过程中的研究思路是一个更加合理的选择。也就是要分析出:该作者发现了哪些问题?对该问题提出了怎样的思考?如何从思考过渡到实际算法改进?甚至对于算法改进过程中碰到的问题的处理方法。这个分析过程是重要的也是必要的,我觉得这个过程是研究人员提升的过程,即发现问题,解决问题能力的全面提升。 5.Advanced idea: 特指原创性很强的,从无到有的idea。和上面说的大牛的basic pipelines应该基本重叠吧。 写作 基本方法验证之后,接下来论文写作了。 英文写作约等于逻辑+英文本身,其中逻辑占绝大比重。逻辑就是讲故事,如何条理分明将自己的工作讲给别人听,并让听者觉得该工作在整个研究的领域是重要的,有意义的。写作能力很重要,例如即使naive的idea 如果写作很好也是很有机会发表的。那么如何练习呢?我导师给的朴素建议是:多练习,每天把自己的工作进展和想法用英文formal 的写出来。 最后,也是最重要的,祝各位同学抱紧大腿,大腿紧抱。

问问小秘 2020-05-19 13:01:37 0 浏览量 回答数 0

回答

BRD文档(商业需求文档) 定义:BRD 是英文”Business Requirement Document“的缩写,根据英文直译过来就是”商业需求文档“的意思,指的就是基于商业目标或价值所描述的产品需求内容文档(报告),其核心的用途就是用于产品在投入研发之前,由企业高层作为决策评估的重要依据。一般来说全新的产品、未来发展有潜力的产品提供BRD! 真相君:市场前景无限大;用户需求未满足;同类竞品没做到;好机会啊,老板 MRD(市场需求文档) 定义:MRD 是英文”Market Requirements Document“的缩写,根据英文直译过来就是”市场需求文档“的意思,主要是描述什么样的功能和特点的产品(包含产品版本)可以在市场上取得成功。一般新功能的实现,上线新的产品提供MRD! 真相君:老板,市场真的很大,产品路线图我都规划好了,我们按照产品路线发展,肯定能成。 PRD(产品需求文档) 定义:PRD 是英文”Product Requirement Document“的缩写,根据英文直译过来就是”产品需求文档“的意思, PRD文档是产品项目由“概念化”阶段进入到“图纸化”阶段的最主要的一个文档,其作用就是“对MRD中的内容进行指标化和技术化”,这个文档的质量好坏直接影响产品能否顺利的实施完成。一般产品的功能改善、产品的细节说明提供PRD文档! 真相君:确保文档可读性;名词不要有歧义;从概念到图纸化;设计开发全靠它。 用户场景 用户场景是什么?是人物、时间、地点、欲望、手段五要素所组成的特定关系。在xx时间(when),xx地点(where),特定类型的用户(who)萌发了某种欲望(desire),会想通过某种手段(method)来满足欲望。 真相君:产品原型很简单;洞察用户才最难;带入场景去分析;用户心理全了然 MVP 简单的说法就是用最小的成本开发出可表达项目创意、可用且能用于表达核心理念的原型产品,功能极简而且能用于快速验证想法的最小化产品。 真相君:糟了,老板明天要验收;别慌,他不懂技术;咱先拿个半成品忽悠他。 灰度发布 定义:灰度发布(又名金丝雀发布)是指让一部分用户继续用产品特性A,一部分用户开始用产品特性B,如果用户对B没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到B上面来。灰度发布可以保证整体系统的稳定,在初始灰度的时候就可以发现、调整问题,以保证其影响度。经常与A/B测试一起使用,用于测试选择多种方案。 真相君:不知新版发布会不会挨骂?;找群白鼠测一下;如果反馈还不错;那就逐步推出它。 用户研究 定义:用户研究是指通过对用户的任务操作特性、知觉特征、认知心理特征的研究,使用户的实际需求成为产品设计的导向,使您的产品更符合用户的习惯、经验和期待。 在互联网领域内,用户研究主要应用于两个方面: 对于新产品来说,用户研究一般用来明确用户需求点,帮助设计师选定产品的设计方向; 对于已经发布的产品来说,用户研究一般用于发现产品问题,帮助设计师优化产品体验。 真相君:用户研究不简单;定性定量都精通;还得数据来建模;产品决策要靠它。 用户画像 定义:用户画像就是你的粉丝群体属性的数据,比如性别、学历、职业、收入水平、手机型号、兴趣爱好等等。是根据用户在互联网留下的种种数据,主动或被动地收集,最后加工成一系列的标签。 真相君:平时上网别乱点;行为历史有记录;根据数据贴标签;再想撕掉难上天 A / B测试 定义:AB测试是为Web或App界面或流程制作两个(A/B)或多个(A/B/n)版本,在同一时间维度,分别让组成成分相同(相似)的访客群组(目标人群)随机的访问这些版本,收集各群组的用户体验数据和业务数据,最后分析、评估出最好版本,正式采用。 真相君:不知道功能上线后效果好不好,先找一部分用户测试看看,好了再全面推广。 UCD 定义:(User Centered Design)是一种设计思维、模式,指以用户为中心的设计。是在设计过程中以用户体验为设计决策的中心,强调用户优先的设计模式。 真相君:先不要考虑盈利,先让用户用的爽再说。 智能推送 定义:将用户“个性”和“商品、服务、内容”属性进行精准的匹配,达到用户所见即所需所想的目的,缩短了信息触达用户的路径,减少用户流失,促进用户快速转化。 真相君:你想看什么,就给你推送什么。 AIOT 定义:智联网(AIOT,是AI + IOT物联网的结合) 2018年开始崛起,核心是能够运用大量传感设备,综合语音、视觉、动作、温度等数据,实现IOT设备的全自然化的人机交互。 真相君:物联网喊了好多年;体验提升太有限;如今终于有突破;人机交互成关键。 AM敏捷开发 定义:以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视、可集成和可运行使用的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。 真相君:一点点来,不要想一口吃个胖子。 PLC 定义:产品生命周期(Product Life Cycle),简称PLC,是产品的市场寿命,即一种新产品从开始进入市场到被市场淘汰的整个过程。这个过程其实就是经历了一个从“启动、成长、成熟一直到衰退”的阶段。 真相君:一个产品四阶段;阶段策略各不同;快速验证和开发;尽力延长成熟期。 可用性测试 定义:让一群具有代表性的用户对产品进行典型操作,同时观察员和开发人员在一旁观察,聆听,做记录。 真相君:观察用户使用产品。 商业闭环 定义:商业闭环是围绕着顾客一系列关联性消费需求,逐一提供相应的产品予以满足的商业模式。主要在商业体系中营造循环圈,各个环节都可以相互依靠,既可以作为个体支撑点也可以协同合作。 真相君:产品分步走;逻辑真是乱;怎么讲清楚;就得靠闭环! 互联网上半场/下半场 定义: 互联网上半场即消费互联网时代,注重的是入口和流量,线上打造; 而下半场即产业互联网时代,注重的是服务和价值,线上线下充分融合。 真相君:上半场玩的是流量,现在流量已经被占完,再看产业和互联;线上线下共融合;下半场来临! CRUD 创建(Create)、检索(Retrieve)、更新(Update)、删除(Delete),有时候也简称“增删改查”这是面向对象设计中最常用的4个基本方法。说来这是数据库里的必备的知识,但作为互联网公司的产品经理,这也是经常会提起的功能点。 真相君:就是后台功能操作分为:增删改查和搜索。 用户任务的闭环 定义:指的是一系列帮助用户完成任务的环节,这些环节可以应对任务可能出现的各种情况。 真相君:就是用户做一件事情要能做完。 KPI 定义:KPI绩效考核,又称“关键业绩指标”考核法,是企业绩效考核的方法之一。这种方法的优点是标准比较鲜明,易于做出评估。它的缺点是对简单的工作制定标准难度较大,缺乏一定的定量性。 真相君:就是给你分配的任务。 蓝海与红海 定义:所谓蓝海,指的是未知的市场空间,即尚未有人涉足,或是只有极少人涉足并且还没有做出太大成绩的市场。这样的市场,如果成功进入,则会是一段绝佳的时期,因为这段时间内你处于绝对的垄断地位,直到你的竞争对手赶上来。做好核心业务,做足差异化,能够帮助你将你的蓝海时段尽可能地延长,保证你的利益。 所谓红海,指的是已经发展的比较成熟,竞争非常激烈的市场。通常红海里的新人很难在短时间内做出成就,除非你在某一方面比你的竞争对手优势更大,或者你让投资人和初期用户看到了你巨大的发展潜力,又或者你在另一片红海中有着极佳的口碑,现在跨界进入这个行业。 真相君:蓝海就是竞争没那么激烈,红海就是竞争很激烈,刺刀见红。 进入壁垒 定义:进入壁垒值得是进入某一市场的难度,这一高度取决于自身的技术、成本、对特定资源的占有情况,以及对手的发展程度。 真相君:就是进入的门槛到底。 商业价值 定义:商业价值指的是一款产品如何创造价值。 真相君:就是如何赚钱。 墨菲定律 定义:事情如果有变坏的可能,不管这种可能性有多小,它总会发生。 真相君:越怕出事,越会出事。 放到互联网行业通常就是这样: 凡是输入框,都会遭遇灌水、SPAM、脚本注入 凡是积分,都会被刷 凡是推到网站首页的内容,都会出现色情、政治 凡是用户间沟通的渠道,都会被广告机器人利用 而对于项目管理而言,又可能是这样: 一项工作如果只有一个人负责,这个人肯定会休假或者离职 认为没有技术难点的地方,都会成为技术难点或性能瓶颈 羊群效应 定义:头羊往哪里走,后面的羊就跟着往哪里走。 真相君:说白了,其实就是从众心理。 破窗理论 定义:如果有人打坏了一幢建筑物的窗户玻璃,而这扇窗户又得不到及时的维修,别人就可能受到某些示范性的纵容去打烂更多的窗户。 真相君:环境中的不良现象如果被放任存在,会诱使人们仿效,甚至变本加厉。 二八定律 定义:也叫巴莱多定律,19世纪末20世纪初意大利的经济学家巴莱多认为,在任何一组东西中,最重要的只占其中一小部分,约20%,其余80%尽管是多数,却是次要的。社会约80%的财富集中在20%的人手里,而80%的人只拥有20%的社会财富。80%的回报来源于20%的有效付出。这种统计的不平衡性在社会、经济及生活中无处不在,这就是二八法则。 真相君:一个人的时间和精力都是非常有限的,要想真正做好每一件事情几乎是不可能的,要学会抓住主要矛盾,合理分配我们的时间和精力。要想面面俱到还不如重点突破,把80%的资源花在能出关键效益的20%的方面,这20%的方面又能带动其余80%的发展。 马太效应 定义:指强者愈强,弱者愈弱的现象。《圣经—马太福音》中有一句名言:凡有的,还要加给他,让他有余;没有的,连他所有的,也要夺过来。社会学家从中引申出马太效应这一概念,用以描述社会生活领域中普遍存在的两极分化现象。 真相君:好的愈好,坏的愈坏,多的愈多,少的愈少。

剑曼红尘 2020-04-09 14:21:15 0 浏览量 回答数 0

回答

FAQ: LNAMP是不是比LNMP更费内存? LNAMP中处理PHP程序的是Apache,LNMP处理PHP程序的是PHP-FPM,这二者占用的内存是差不多的。 LNAMP为什么会比LNMP更稳定? 原因同上,Apache是全世界流行了十几年的服务器程序,稳定性自然不在话下,而PHP-FPM是以PHP解释器引擎本身添加进了“服务器”的功能特性实现的,尤其在大负载情况下差异更为突出。 LNAMP为什么会比LAMP更高效? LNAMP中处理静态请求的是NGINX,LAMP中处理静态请求的是APACHE。 NGINX主要是以多线程的方式工作的,也就是它只需要一个进程,就可以处理大量的并发请求。而APACHE是以进程的方式工作,每处理一个请求,就需要占用一个进程。进程和线路的区别应该不需要多解释了。 APACHE也可以使用线程的方式,但是这样的话,它处理PHP解析也会同样使用多线程,流量稍高点的环境中会严重影响稳定性。 为什么不带面板? 原因1:本人不擅长写WEB程序。 原因2:任何带有面板的环境套件,对环境本身的修改都有很大的限制,比如流量达到几万IP的时候,你再想优化下环境,一旦有些配置你修改了,就可能会导致面板出问题。 ------------------------- Re:Re 引用第8楼imhua于2014-02-15 23:27发表的 Re : 以后可以考虑升级脚本,比如升级php,nginx等 在计划中 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第10楼xinde于2014-02-16 10:23发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 安装过程有错误 make[2]: *** No rule to make target `/usr/lib/libcurses.so', needed by `client/mysql'.  Stop. make[1]: *** [client/CMakeFiles/mysql.dir/all] Error 2 make: *** [all] Error 2 ....... 发行版,版本号,位数,这些能否提供下? 方便的话最好能PM下IP和密码。 错误是因为缺少 libcurses这个库,不同的系统里名字可能会不一样。 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第13楼zikercn于2014-02-16 14:23发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : ln: creating symbolic link `/usr/bin/resolve_stack_dump': File exists /usr/local/mysql/bin/mysqladmin: connect to server at 'localhost' failed error: 'Access denied for user 'root'@'localhost' (using password: NO)' Error Occured! ....... 之前安装过一次了吧?再安装的话应该先重装系统。 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第15楼金融之王于2014-02-16 21:00发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 :   现在安装PHP选择5.5,那以后PHP官方出5.6、5.7版本,怎么升级? yum -r install php或 yum update php 应该都行不通吧? ....... 第一,未来会加上升级的选项 第二,不要为了升级而升级,除非网站程序对新版功能有明确要求,或者为了修复漏洞。 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第21楼haibin00于2014-02-18 23:45发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 整个服务怎么重启?我安装好后,从新启动了一下服务器,整个lanmap就不能用了,怎么把这些服务都启动尼? 一些常规的指令最好发出来,新手不太懂 具体的系统版本是什么? ------------------------- Re:回22楼服务器之家的帖子 引用第23楼haibin00于2014-02-19 01:04发表的 回22楼服务器之家的帖子 : Debian 6.0.6 64位 安装完,还把php升到5.4了,但我在控制台重启了服务器就不能用了 方便的话IP和密码PM给我看下 ------------------------- 回 25楼(haibin00) 的帖子 密码是错的,你加我QQ吧。 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第28楼天之城于2014-02-20 13:41发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 怎么安装支持curl 已经支持了,不需要再安装。 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第30楼天之城于2014-02-23 00:17发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 安装好后,有没有单独升级php版本的 暂时没有,以后会考虑增加这个功能。 ------------------------- 引用第32楼1351edu.com于2014-02-23 10:20发表的  : [attachment=49180] 我的装了后,发生502错误。 请联系签名的QQ ------------------------- 回 35楼(天之城) 的帖子 passwd www ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第37楼salesparty于2014-02-24 17:01发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : phpMyAdmin Version information: 3.3.10.5, old enough. 3.4版本之后开始大量使用AJAX,随之而来的是一堆BUG,以至自己带了一套BUG提交机制。 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第39楼yipoo于2014-02-25 15:25发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 看起来很好,晚上安装测试下效果 欢迎反馈意见建议~ ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第42楼javin于2014-03-01 11:04发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 数据库的安装信息在哪里? 安装完会在屏幕显示,同时会保存在/root/setup.txt 。 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第46楼thorbj于2014-03-02 14:21发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 我的服务器突然遇到能ping通但是网站打不开的问题,请问能不能帮忙分析一下可能是什么原因。LAMP重新安装不行,服务器重装都不行 签名里有QQ ------------------------- Re:回47楼服务器之家的帖子 引用第49楼thorbj于2014-03-02 19:36发表的 回47楼服务器之家的帖子 : 这种服务是怎么收费的,必要时候还真感觉需要你们的帮助 依难度和需要的时间而定。需要的时候可以联系我QQ。 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第51楼自言自语于2014-03-03 17:00发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : MySQL是什么版本? 5.5系列最新版 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第53楼自言自语于2014-03-03 18:56发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 我看到安装完以后的FTP根目录是: /home/www/ 请问应该把数据盘挂载到哪个目录下? /home/www/ ------------------------- 回 57楼(马丁) 的帖子 是什么系统? ------------------------- 回 59楼(vagh) 的帖子 service mysqld stop chkconfig mysqld off 上面两个命令让它不启动就行了 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第67楼天之城于2014-03-08 09:48发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 低配云服务器CentOS 6.3 64位,1核512M内存,在编译php 的时候出现内存不足 virtual memory exhausted: Cannot allocate memorymake: *** [ext/fileinfo/libmagic/apprentice.lo] Error 1 改了下,500M以下内存不编译fileinfo模块了。 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第70楼幸福黄金于2014-03-14 10:07发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : mysql、apache、nginx、php 能不能自定义安装路径 这个没什么必要,编译安装的软件放到/usr/local/是比较规范的做法。 如果一定要修改,先把脚本下载回来,修改编译参数中的PREFIX即可。 ------------------------- Re:回71楼服务器之家的帖子 引用第72楼amoslee于2014-03-14 19:52发表的 回71楼服务器之家的帖子 : 楼主,同样出现67楼的问题,解决一下 能否PM下IP和密码我检查下? ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第74楼hun于2014-03-14 23:04发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 官方低配能用此环境不,装完占多少内存? 1,能用 2,在合理的范围内,开的APACHE进程越多,配的MYSQL缓存越大,用的内存越多,支撑的访问量越大。一般这么问的人都以为占的内存越少越好,这个以后有时间会开个帖子写一下。 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第76楼amoslee于2014-03-15 12:42发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : Error Occured! Current Work Dir: /tmp/dir/php-5.5.10 Command: ....... 能否PM下IP和密码? ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第78楼酷酷机器猫于2014-03-16 18:40发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 楼主 你好。 我装好了,但是有个问题,我文件是二进制上传的,但是安装网站时显示不是二进制上传的。 在用其他一键安装包时没这个问题。 最简单的办法,打包上传然后解压缩。 我现在试过好几种上传方式都不行,是不是哪里设置有问题,帮忙回答下 非常感谢 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第80楼酷酷机器猫于2014-03-16 22:43发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 谢谢 LZ 上个问题解决了。 请问下有没有查看mysql ftp 帐号密码的命令?   类似: cat account.log cat /root/setup.txt ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第83楼灰色状态于2014-03-17 18:01发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 你这个和军哥的LNMP比起来,如何? 都在一楼写过了 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第85楼灰色状态于2014-03-17 20:30发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 请问适合最低配置,1核,512M内存的使用不??? 可以 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第88楼不要作死于2014-03-18 01:24发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : echo '/dev/xvdb1  /home/www ext3    defaults    0  0' >> /etc/fstab 挂载数据盘到/home/www的命令是不是这样? ....... 文件内容不正确 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第91楼智子于2014-03-28 15:51发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : php可以选择,apache和mysql还有nginx这三个软件默认是什么版本 apache 2.2.x最新稳定版 mysql 5.5.x最新稳定版 nginx最新稳定版 安装程序会抓取官方数据分析版本和下载地址 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第99楼aa65535于2014-04-02 13:27发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : Debian系统下无法使用 具体是什么错误? ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第99楼aa65535于2014-04-02 13:27发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : Debian系统下无法使用 这种需求相对来说很小众,如果不需要MYSQL可以设置下不运行这个服务即可。 service mysqld stop chkconfig mysqld off ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第96楼阿莱于2014-04-01 14:15发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 这个安装的时候没有提示,不能让用户选择哪些装哪些不装。 ....... 安装的服务都在/usr/local/目录下,启动脚本在/etc/init.d/目录下。 建议关闭服务即可,没有必要删除文件,占用的硬盘不是很多。 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第95楼坤叔于2014-03-31 20:33发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 环境组件官方源太慢了,强烈要求换成国内可靠站点镜像,或者server110自己的服务器! 安装程序会自动分析官方网站上的最新版本的下载地址,如果使用其他下载的地址不方便安装到最新版本。 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第97楼lisso.me于2014-04-01 16:44发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : PHP 似乎没有启用PDO支持,请问如何启用? 感谢反馈,安装脚本里已经添加了相应的编译参数。 [attachment=51113] 如果不想重装的话,可以参考下这个链接 http://www.server110.com/php/201404/8711.html 注意下路径有可能不同。 ------------------------- Re:回101楼服务器之家的帖子 引用第107楼aa65535于2014-04-02 16:56发表的 回101楼服务器之家的帖子 : 一直循环出现这个错误: [code]gzip: /tmp/dir/mysql-5.5.37.tar.gz: No such file or directory tar: This does not look like a tar archive tar: Exiting with failure status due to previous errors ....... 你系统里设置的源没有axel,能否PM IP和密码我查看下。 如果只想解决问题的话,自己先安装上axel即可。 晚些时间我会修改下脚本在debian和ubuntu都用编译方式安装axel。 ------------------------- Re:ReRe回101楼服务器之家的帖子 引用第109楼aa65535于2014-04-02 17:35发表的 ReRe回101楼服务器之家的帖子 : 已经PM 发现了点问题,如果方便的话,能否重新装一下这个系统再提供下密码,感谢。 ------------------------- Re:ReReReRe回101楼服务器之家的帖子 引用第111楼aa65535于2014-04-02 19:35发表的 ReReReRe回101楼服务器之家的帖子 : 已经PM了 依赖关系的路径还有点问题,建议你先用CENTOS安装下。 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第113楼蓝昼于2014-04-03 15:00发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 亲啊,不能搞个国内分流吗?这速度下到猴年马月啊,从中午11点半装到现在了~下午三点了。。。 这效率太差了,早丧失一键安装的意义了! ....... 恩,我也体会到了,这几天就会调整为在server110.com的服务器上下载。 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第115楼haha231于2014-04-03 17:06发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : Current Work Dir: /tmp/dir/php-5.4.26 Command: make -j 1 && make install Error: ....... 能否PM下IP和密码? ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第115楼haha231于2014-04-03 17:06发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : Current Work Dir: /tmp/dir/php-5.4.26 Command: make -j 1 && make install Error: ....... 能否PM下IP和密码? ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第116楼漫步西溪于2014-04-03 17:43发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 安装楼主方法一键安装了环境,应该PHP5.2,如果要换成其他版本的PHP,怎么操作? 我是纯粹业余,不懂技术,还望楼主详细指导下 目前安装程序还不能更换PHP版本,最简单的方法就是重新安装一次。 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第120楼blucejum于2014-04-03 21:45发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 显示说需要安装好几天才能装好。。。 这几天会修改为从www.server110.com的服务器上下载安装程序 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第115楼haha231于2014-04-03 17:06发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : Current Work Dir: /tmp/dir/php-5.4.26 Command: make -j 1 && make install Error: ....... 问题已经修复,帐号密码在/root/setup.txt,也可以再重装下。 ------------------------- Re:ReReRe阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第126楼坤叔于2014-04-04 09:46发表的 ReReRe阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 需要怎么操作啊?没经验,还望详细解答 先重装系统 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第130楼haha231于2014-04-05 15:09发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 安装的ftp是什么版本啊,装在哪里,在哪里改设置? /etc/proftpd.conf 这个一般没必要修改 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第133楼坤叔于2014-04-09 20:24发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 请问,为了便于今后管理升级等,若是主机两个盘(系统+数据),怎么设置系统和环境等放在系统盘,而网站数据在数据盘? 如果不经过额外的操作,环境 是安装在系统盘上的。 网站的目录设置在/home/www/,如果有数据盘,就挂到这个目录上。 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第135楼漫步西溪于2014-04-10 01:17发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 我也遇到这样的问题。 就按照楼主的站点案例: 1、数据盘挂的是/home/www/目录?而不是/home/www/server110.com/目录? 2、还有,是必须要先挂载数据盘、再site建立站点么?还是顺序先后不影响的? 3、另外,如果我有两个独立的网站数据放在数据盘,又该怎么操作? 1, /home/www/ 2,先挂载会省事些。如果是后挂载,先把 /home/www/下面的文件全部转移走,挂载硬盘后再移回来。 3,/home/www/a.com,/home/www/b.com。 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第138楼坤叔于2014-04-11 00:55发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 楼主,请问我按照你的一键安装了环境组件后,能不能使用AMH面板的? 因为我不知道AMH面板是默认自动安装环境组件的, 还是说可以在已经安装环境组件的主机上可以使用 不能 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第141楼水芳网络于2014-04-12 22:52发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 楼主,你这个一键安装,装了phpMyAdmin,但是我不想用phpMyAdmin,请问怎么卸载或者删除啊?先谢谢楼主了 rm -f /usr/local/nginx/conf/extra/phpMyAdmin.conf rm -f /usr/local/httpd/conf/extra/httpd-pma.conf rm -rf /usr/local/app/phpMyAdmin/ service nginx restart service httpd restart ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第143楼漫步西溪于2014-04-13 01:49发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : [attachment=51492] 老板,这是什么情况? 环境是CentOS系统,按照1楼方法,PHP选择了5.5的, ....... mkdir /home/www/default/ mkdir /home/www/logs/ chown -R www.www /home/www/ service httpd restart ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第148楼水芳网络于2014-04-14 08:51发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 楼主,这个一键安装默认安装的mysql是MyISAM引擎,而且不支持InnoDB引擎,有没有必要修改? 如果你要用的网站程序明确要求使用 InnoDB需要在/etc/my.conf里把禁止innodb的选项删除 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第151楼贴息网于2014-04-14 12:44发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 楼主,按照你的步骤安装了,想问问,如何设置伪静态啊?就是把网站所有.php后缀的换成.html后缀的? 和apache环境的一样,用.htaccess。 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第155楼samyang于2014-04-17 14:01发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 安装好后php的配置php.ini在/etc/下么,修改保存之后重启nginx么 重启apache ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第158楼酷酷机器猫于2014-04-18 17:31发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 楼主,请问下, 如何配置网站日志?     按照这个教程弄好后  /home/www/logs/ 下面是空的,是不是哪里需要设置或者开启? /usr/local/nginx/conf/vhost/ ------------------------- 回 169楼(haibin00) 的帖子 /root/setup.txt ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第168楼koki于2014-05-06 12:01发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 有个问题想问,安装好环境以后,我添加了xxx.com域名,相应得建立了文件夹,但是目前备案没下来,只能用ip访问,但是 ip访问得路径是/home/www/default/ 修改哪里让 ....... /usr/local/nginx/conf/nginx.conf /usr/local/httpd/conf/extra/httpd-vhosts.conf ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第181楼风沙渡于2014-05-23 13:59发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 楼主,我按你说的方法,安装后显示“Congratulations! Your Installation Is Complete.”,这样应该是成功了吧?在setup.txt里有phpmyadmin跟FTP信息,可这两个都用不了的,管理地址打开是错误页面的?分配的FTP连接超时,这个环境只能用在阿里云吗? 未知厂商的主机,由于系统模板的情况各种各样,有可能会出错,脚本一直在不停的改进兼容性,但这是一条没有头的路。 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第189楼鑫森炭业于2014-06-11 10:15发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : php版本5.2.17,不能做个升级的嘛 暂时没有添加升级版本的功能,安装的时候可以指定版本,安装后就不能改了,暂时是这样。 ------------------------- Re:回190楼服务器之家的帖子 引用第191楼鑫森炭业于2014-06-13 09:05发表的 回190楼服务器之家的帖子 : 谢谢回复。我在安装的时候,并没有看到有设置php版本的地方啊? 那么,我现在卸载后再重新安装,哪里有提示设置php版本?谢谢! 仔细看一楼的帖子 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第193楼captaincoco于2014-06-13 09:56发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 如何添加二级子域名。。。。 和一级域名一样 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第195楼0971net于2014-06-14 23:34发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 网站日志怎么启动?在哪里查看 /usr/local/nginx/conf/vhost/域名.conf     #access_log /home/www/logs/域名.log nginx_log;     access_log off; 上面一行注释去掉,第二行删除。 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第199楼666ydcom于2014-06-18 11:40发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 安装时选了php5.5的,现在想用回php5.3怎么做啊??急!急! 如果还没部署网站,可以先重装系统,再安装。 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第200楼videotx于2014-06-18 14:27发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 看了下代码, 不错! 特别是download_file 递归处理, 很机智 多谢支持! ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第201楼大家看于2014-06-18 16:00发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 我想请问下  Nginx 和 Apache 的最大连接数 上 怎么 算的呢 据我所知Apache 的最大连接数很小 NGINX 的连接数 到时随着配置的提升可以扩展 但是这么搭配 连接数是算 Apache 的 还是 Nginx 的 呢 我是新手 只是简单 问下 我不明白的 所以哪里有不恰当的地方 请多多包涵! Nginx处理请求用的是线程,所有静态和动态请求都会先经过Nginx,动态请求再由Nginx转发给Apache去处理,每一个动态请求在处理期间会占用一个Apache进程,所以影响比较大的是Apache的进程数量。 ------------------------- Re:回204楼服务器之家的帖子 引用第206楼多久啊看于2014-06-19 16:24发表的 回204楼服务器之家的帖子 : 老大 实在没有办法了 虽然试用 很好 但是 我主站用的PHPCMS 开伪静态以后 连连出错 或许是没研究明白吧  连页面都打不开了 没办法 看来 我还得用回去啊 不过真心觉得是不错! 不会是伪静态代码写错了吧 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第213楼多久啊看于2014-06-20 18:39发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 我查找了一下 貌似没有mod_rewrite模块  要手动安装 但是我又不怎么会 好像要重新安装 Apache  才可以 rewrite模块默认已经加载 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第211楼医学生团队于2014-06-20 15:29发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 为什么用"www"这个账号连不上ftp,我用root这个用户就能连接上 错误提示是什么 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第217楼datassss于2014-06-22 00:00发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 如果想要改所有log的位置该怎么做? apache、php、nginx等的配置文件位置在哪里? http://www.server110.com/linux/201406/10673.html ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第219楼求知心切于2014-06-25 10:20发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 哥,mysql的初始密码是多少啊 /root/setup.txt ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第221楼求知心切于2014-06-25 17:23发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 为什么我修改了nginx的nginx.conf配置文件,但是还是访问那个主页呢,我想访问我的主页应该怎么办,楼主,求解   看一楼的帖子,不熟悉的东西不要乱改。 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第223楼求知心切于2014-06-26 09:09发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 但是我按1楼的办法设置了,然后访问了ip,一直都是显示你的那个主页,我看已经有我写的文件夹,而且文件夹下面我已经放了代码了,但是就是访问不到我文件夹里面的东西,一直都是跳转到你们设置的default文件夹下的index了,我想要跳转到我的那个文件夹,应该怎么弄?我的命名不是你那个,这个有没有关系?[attachment=54955] 按这个操作一次 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第225楼joseph_lei于2014-06-26 10:26发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 如何增加多域名访问一个站? 按一楼的操作,多绑定一次 ------------------------- Re:回222楼服务器之家的帖子 引用第224楼求知心切于2014-06-26 09:11发表的 回222楼服务器之家的帖子 : 还有听说80端口可能要禁了,但是我看nginx的端口都只开了80的,这个可以手动加其他端口上去吗,不能的话80真的禁了的时候应该怎么处理? 第一,有备案,封80不可能 第二,端口写在配置文件里,可以改 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第231楼0971net于2014-06-27 17:05发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : CentOS-6.5 64位   兼容吗 一楼里测试过的意思就是安装成功,这也要解释,真无语了。 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第233楼邻居王大爷于2014-06-27 21:03发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 按照你说的,都安装成功了,但是在我安装wordpress程序的时候那个数据库始终链接不上,试过localhost、127.0.0.1:1000、ip:1000、这些地址都试了,还是链接不上去,求解决..[attachment=55171] 1000是phpMyAdmin的端口,不是MySQL的端口,安装网站程序不要把这个端口加上,地址用localhost。 ------------------------- Re:回234楼服务器之家的帖子 引用第235楼邻居王大爷于2014-06-28 08:54发表的 回234楼服务器之家的帖子 : 数据库地址几乎都试过了,localhost也试过了,会出现502错误,我用你这个教程装了4遍了,前两遍没仔细看清帖子,是带环境装的,不能用,第三遍纯净安装的,成功了,然后数据库连接不上,以为是安装错误,就又重装系统,重装了一遍这个环境,结果还是出现这个问题。另外,我没有绑定域名,绑定的是ip,还有也试过用我其它服务器上的数据库地址,要么不成功,要么出现502。该怎么解决? [attachment=55176] 是阿里云吗 ------------------------- Re:回236楼服务器之家的帖子 引用第237楼邻居王大爷于2014-06-28 11:58发表的 回236楼服务器之家的帖子 : 不是阿里云 我也不好意思在这里问啊...centos6.5的 纯净版 IP和密码PM给我,我一会要出去,回来给你看下。 ------------------------- Re:回238楼服务器之家的帖子 引用第239楼邻居王大爷于2014-06-28 15:14发表的 回238楼服务器之家的帖子 : 密码发给你了,系统重装了一遍,又安装了一次你这个环境,暂时没有绑定网站,现在一切都是全新的,系统是centos 6.5的,你先安装个wordpress试试,看看能不能成功... Segmentation fault,无解,换成PHP5.5可以安装了。 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第242楼求知心切于2014-06-30 14:40发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 楼主大人,我按照你的方法安装了,安装之后访问是没有问题,访问的是你们的那个主页,但是我用那个site弄了我的程序进去之后访问的还是你们的主页,是需要加端口吗,还是说需要其他什么配置呢,我是site-》1  然后ortv3.COM,在home/www下面找到这个目录,然后在这个目录下面新建了一个index.php,但是访问的一直都是你们那个主页,请教 写的太乱了,估计是基本的使用都不懂,我说的使用是LINUX,不是LNAMP,慢慢学吧。 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第244楼求知心切于2014-06-30 15:26发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 我就是在centos下面按照您的方法安装了您配置的lanmp啊,安装完之后在windows网页访问linux地址是可以打开你的那个主页,但是我再按照你的方法(site)添加了新的站点,在新站点文件夹里面新建了另一个主页的页面,访问linux的ip地址时候的时候还是访问你的那个主页,没有访问到我的那个站点的主页,明白否? 你访问IP,就是那个页面,建不建新站点,它就在那里。 ------------------------- Domains: 这里可以域名也可以用IP,但是不能用IP+目录 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第251楼大家看于2014-07-05 20:45发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 今天安装了两遍 一直提示 collect2: ld returned 1 exit status make: *** [sapi/cli/php] Error 1 Error Occured! ....... 前面的信息也发出来 引用第252楼大家看于2014-07-05 20:47发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 而且我还想请问 数据库 可以单独 提供下载 安装么 你这个数据库 我之前 安装成功调试的时候 测试过 最大连接数 是可调的 不像 其他的 都调不了 无论初始配置是多大 都变不了 而你这个可以! 不能 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第255楼大家看于2014-07-06 10:57发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 今天又安装了一遍 还是 一样! IP和密码PM给我 ------------------------- Re:回256楼服务器之家的帖子 引用第258楼多久啊看于2014-07-06 11:45发表的 回256楼服务器之家的帖子 : IP 用户名 以及密码 已发! 测试了下,应该是你前面安装的环境导致的,先重装系统再安装。 ------------------------- 回 262楼(多久啊看) 的帖子 没影响 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第273楼长剑耿介于2014-07-22 00:35发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : [attachment=56935] 难道我打开方式不对? 如果要用手打,请看清每一个字符。看不好请用复制粘贴。 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第276楼zhouyun于2014-07-23 00:18发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : [attachment=57007]为什么我安装screen的时候会报这个错?求大神解释 试一下apt-get update -y ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第280楼neutrino于2014-07-23 12:59发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 想删除就是/etc/init.d/下的nginx httpd ftp mysql,然后删掉/usr/local里的文件夹就行了? 最好重装系统 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第283楼ap5114i1j于2014-07-26 03:03发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : [attachment=57290] 出错了。 ....... yum list *ssl* 命令结果帖一下。 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第285楼zong于2014-07-26 11:32发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : yum install php-pear 安装后,PHP版本回到php.5.3.3了。 不能这么玩,重装系统吧。 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第288楼f2c-1于2014-07-26 22:27发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 这个安装脚本执行时间太长了,安装Mysql是源码安装,有必要吗? yum install mysql-server不就行了吗? 各有所爱 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第296楼shuangyutv于2014-08-01 13:59发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : mysql可以用navicate远程登录嘛?需要做什么修改? 添加一个主机为任意主机的管理帐号,安装后的root帐号只能从本地登录。 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第298楼shuangyutv于2014-08-02 02:25发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 请问一下楼主,我的网站是用Yii框架写的,部署在这个环境下,伪静态怎么设置啊? 我看你教程里面写的是“通过.htaccess文件设置,将规则代码写入到.htaccess文件后,上传到网站根目录即可”,但是我把以前放在LAMP环境下的.htaccess文件我传到根目录下就自动不见了。我想请教一下伪静态的具体配置方法 请说一下在哪里看到它自动不见了 ------------------------- Re:回299楼服务器之家的帖子 引用第301楼shuangyutv于2014-08-02 10:51发表的 回299楼服务器之家的帖子 : [attachment=57837] 附上.htaccess文件 看起来没什么问题 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第304楼啄木网于2014-08-03 20:03发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : phpmyadmin提示链接表的附加功能尚未激活。要查出原因,请点击此处。 好像要修改文件?菜鸟想问下linux里怎样修改啊…… 这个可以不用管,不影响使用,如果一定要管,百度下。 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第309楼何林江于2014-08-05 09:36发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 我补充两张图,显示%wa一直很高,最高的时候居然到了99.7%,但我的网站现在几乎都没流量,暂时都只有自己知道,两个站点用的是wordpress,另外一个是dedecms,并且也没什么定时任务之类的 [attachment=57960][attachment=57961] ....... 把Nginx日志打开,再出问题看日志。 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第309楼何林江于2014-08-05 09:36发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 我补充两张图,显示%wa一直很高,最高的时候居然到了99.7%,但我的网站现在几乎都没流量,暂时都只有自己知道,两个站点用的是wordpress,另外一个是dedecms,并且也没什么定时任务之类的 [attachment=57960][attachment=57961] .......    前面回过好像没了,再给你回一次吧。 第一个问题,务必添加swap。 http://www.server110.com/linux/201310/2924.html 第二,开Nginx的日志,再出问题看日志。 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第315楼may111于2014-08-08 11:38发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : [attachment=58217] 这是什么问题 显示502错误,访问phpmyadmin也是502 /usr/local/httpd/conf/httpd.conf,94行 你给改了吧 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第318楼horek于2014-08-09 10:29发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 您的LNAMP怎么打开phpMyAdmin 麻烦您告知一下 谢谢了 看/root/setup.txt ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第321楼xiaoxialone于2014-08-10 04:04发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 你好。楼主。环境已经配置成功,一开始安装WORDPRESS的时候会提示502 然后就直接改了配置文件,安装成功了。 但是问题wordpress打开插件以及外观两个选项会跳502错误。还请楼主指教下。 http://bbs.aliyun.com/read/164642.html ------------------------- 11111111 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第332楼11号猫弟于2014-08-16 21:49发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 我之前使用的这一套脚本,安装完以后使用了一段时间,挺好用的,但是现在我需要在我的服务器上部署gitlab,还是用域名指向的这个ip,但是被这个脚本拦截到了默认路径,这个时候要怎么做才能让该域名绕开这个脚本呢? 把域名绑定到要用的目录上 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第338楼kagami于2014-08-22 09:09发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 为什么我安装不了呢 连不上server110 你的IP是什么 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第339楼黄靖于2014-08-23 14:29发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 如何将默认的404页面改成自己的404呢 用.htaccess设置,百度下代码 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第345楼ylopt于2014-08-26 10:58发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 刚刚安装了,怎么就显示502呢 下载文件的服务器正在重装系统,等下再装吧。 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第353楼00星辰00于2014-08-29 22:19发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 :      请教下 是不是这个环境只能添加一个站点  添加了3个站点只有第一个生效可以访问 后面2个都是报错    没有限制 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第359楼007互联于2014-08-31 15:12发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 安装完之后www登陆FTP登陆不了是什么原因? 看错误提示 ------------------------- Re:回 119楼(服务器之家) 的帖子 引用第361楼灬兵于2014-08-31 19:16发表的 回 119楼(服务器之家) 的帖子 : 楼主指的是重新安装脚本程序 还是单独安装自己想要的PHP版本。 先重装系统再执行安装脚本 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第367楼debao.wang于2014-09-03 12:30发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 如果网站没有采用静态化处理,是php写的动态网站,那么LNAMP相比LAMP优势就不那么明显了。 显然你没有搞明白访问一个网页时这其中最其本的技术原理。 以Discuz官方论坛为例,一次浏览器访问,产生的HTTP请求约60次,动态请求只有2次,剩下的全部都是静态请求,这些静态请求对于Nginx和Apache的资源消耗是天壤之别。 [attachment=60415] ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第369楼dj电音吧于2014-09-03 14:43发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 安装了脚本基本上很顺畅,现在有个问题出现,就是大附件上传出现servers(io)error Nginx和php都设置了支持上传最大512m上传100m以下的就成功,大于的就出现错误。PHP几项的设置应该没问题的。不知道ngunx和apache哪还有会影响文件上传的。请指教!另外我试过设置nginx的一项连接时间为600秒,出现上传进度1%到10%左右会进度弹回1%重复几次后才出现以上错误!请大神指点迷津啊! 只从这些信息的话,判断不出来。 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第388楼hap于2014-09-18 08:34发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : Error: configure: warning: bison versions supported for regeneration of the Zend/PHP parsers: 1.28 1.35 1.75 1.875 2.0 2.1 2.2 2.3 2.4 2.4.1 (found: 3.0.2). configure: warning: flex versions supported for regeneration of the Zend/PHP parsers: 2.5.4  (found: 2.5.35) configure: error: freetype.h not found. ....... CentOS yum install freetype-devel Debian apt-get install libfreetype6-dev ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第390楼timedia于2014-09-19 12:46发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 装好也设置好,未提示任何错误 但ftp、站点均无法访问 哪个系统版本?哪个PHP版本? ------------------------- Re:ReReRe阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第394楼timedia于2014-09-22 11:04发表的 ReReRe阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : centos 6.5 PHP 5.3 5.4 5.5 都试过。。。 ps auxf命令结果帖一下 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第400楼eingxin于2014-09-24 15:23发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 话说这个环境那都好,就是跑Discuz 3.2的时候出现图片缓存,怎么都不刷新。快疯掉了 帖个网址看看 ------------------------- Re:回楼主服务器之家的帖子 引用第403楼百般幸运于2014-09-26 09:56发表的 回楼主服务器之家的帖子 : 支持内网安装么? 需要外网下载文件 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第405楼gudianbook于2014-09-27 08:07发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : mysqladmin -u root password '  命令失败  mysqladmin -u root password ' service httpd start  不行 Starting httpd: (98)Address already in use: make_sock: could not bind to address 127.0.0.1:8080 no listening sockets available, shutting down ....... 安装后不需要再执行mysqladmin,你应该还做了一些其他不应该做的操作,具体是什么就不得而知了。 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第406楼wjw8801于2014-09-29 22:24发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 问个小白问题:最后那个SIte命令可以建站的是什么工具里有的命令? 这个是我自写的管理脚本 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第409楼stanper于2014-10-03 11:52发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 你好,请问安装完后,phpmyadmin目录在什么位置? /usr/local/app/phpMyAdmin/ ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第412楼wjw8801于2014-10-06 17:48发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 这个可以手动升级Mysql和nginx还有httpd吗? 只要会搞就OK ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第415楼wide于2014-10-09 23:41发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 请教问题: 采用阿里云,为了规避防火墙只能对外使用80和8080端口访问的限制。 将ssh端口从22改用8080。 在更改之前查看了 webcache 监听用 8080 端口,例如: /etc/services:webcache    8080/tcp            # WWW caching service ....... 为了规避防火墙只能对外使用80和8080端口访问的限制,这条不而立,出发点就错了。 ------------------------- Re:回楼主服务器之家的帖子 引用第420楼p584578656于2014-10-11 19:10发表的 回楼主服务器之家的帖子 : 你好,请问一下,网站日志在哪个文件夹?我在FTP里面没有看到有生成的访问日志啊   默认没有记录日志,需要的话看一下Nginx配置文件。 ------------------------- Re:回421楼服务器之家的帖子 引用第422楼p584578656于2014-10-12 09:24发表的 回421楼服务器之家的帖子 : 需要修改配置文件来生成日志吗?Nginx和Apache都需要修改吗? 只需要修改NGINX,网站的配置文件里已经有代码了,但是默认被注释掉,把注释去掉就可以了。 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第429楼xiumuzjq于2014-10-26 21:58发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 您好,我安装了php5.3的脚本但现在因为想装个swoole扩展,要求至少5.3.10的php版本,请问大神,这个可以升级吗?该怎么操作 你可以用php -v看看现在的版本 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第461楼富余劳动力于2014-11-07 11:13发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 请问大神 这套东西,不是阿里云可以用吗? 我们公司自己租的那种服务器能装吗 大部分都可以 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第511楼高山流水于2014-12-22 10:05发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 请问如何开启服务器的gzip压缩呢?是不是Nginx和Apache都要改配置,还是只需要改一个?新手不太懂 还有,建议找个地方开一页FAQ,我把这帖子35页翻了一遍,好费劲啊…… [url=http://bbs.aliyun.com/job.php?action=topost&tid=151729&pid=600353][/url] 默认已经开启了gzip,不需要改动。

云代维 2019-12-02 02:41:55 0 浏览量 回答数 0

回答

回 2楼(zc_0101) 的帖子 您好,       您的问题非常好,SQL SERVER提供了很多关于I/O压力的性能计数器,请选择性能计算器PhysicalDisk(LogicalDisk),根据我们的经验,如下指标的阈值可以帮助你判断IO是否存在压力: 1.  % Disk Time :这个是磁盘时间百分比,这个平均值应该在85%以下 2.  Current Disk Queue Length:未完成磁盘请求数量,这个每个磁盘平均值应该小于2. 3.  Avg. Disk Queue Length:磁盘请求队列的平均长度,这个每个磁盘平均值也应该小于2 4.  Disk Transfers/sec:每次磁盘传输数量,这个每个磁盘的最大值应该小于100 5.  Disk Bytes/sec:每次磁盘传入字节数,这个在普通的磁盘上应该在10M左右 6.  Avg. Disk Sec/Read:从磁盘读取的平均时间,这个平均值应该小于10ms(毫秒) 7.  Avg. Disk Sec/Write:磁盘写入的平均时间,这个平均值也应该小于10ms(毫秒) 以上,请根据自己的磁盘系统判断,比如传统的机械臂磁盘和SSD有所不同。 一般磁盘的优化方向是: 1. 硬件优化:比如使用更合理的RAID阵列,使用更快的磁盘驱动器,添加更多的内存 2. 数据库设置优化:比如创建多个文件和文件组,表的INDEX和数据放到不同的DISK上,将数据库的日志放到单独的物理驱动器,使用分区表 3. 数据库应用优化:包括应用程序的设计,SQL语句的调整,表的设计的合理性,INDEX创建的合理性,涉及的范围很广 希望对您有所帮助,谢谢! ------------------------- 回 3楼(鹰舞) 的帖子 您好,      根据您的描述,由于查询产生了副本REDO LOG延迟,出现了架构锁。我们知道SQL SERVER 2012 AlwaysOn在某些数据库行为上有较多变化。我们先看看架构锁: 架构锁分成两类: 1. SCH-M:架构更改锁,主要发生在数据库SCHEMA的修改上,从你的描述看,没有更改SCHEMA,那么可以排除这个因素 2. SCH-S:架构稳定锁,主要发生在数据库的查询编译等活动 根据你的情况,应该属于SCH-S导致的。查询编译活动主要发生有新增加了INDEX, 更新了统计信息,未参数化的SQL语句等等 对于INDEX和SQL语句方面应,我想应该不会有太多问题。 我们重点关注一下统计信息:SQL SERVER 2012 AG副本的统计信息维护有两种: 1. 主体下发到副本 2. 临时统计信息存储在TEMPDB 对于主体下发的,我们可以设置统计信息的更新行为,自动更新时,可以设置为异步的(自动更新统计信息必须首先打开): USE [master] GO ALTER DATABASE [Test_01]     SET AUTO_UPDATE_STATISTICS_ASYNC ON WITH NO_WAIT GO 这样的话查询优化器不等待统计信息更新完成即编译查询。可以优化一下你的BLOCK。 对于临时统计信息存储在TEMPDB里面也是很重要的,再加上ALWAYSON的副本数据库默认是快照隔离,优化TEMPDB也是必要的,关于优化TEPDB这个我想大部分都知道,这里只是提醒一下。 除了从统计信息本身来解决,在查询过程中,可以降低查询的时间,以尽量减少LOCK的时间和范围,这需要优化你的SQL语句或者应用程序。 以上,希望对您有所帮助。谢谢! ------------------------- 回 4楼(leamonjxl) 的帖子 这是一个关于死锁的问题,为了能够提供帮助一些。请根据下列建议进行: 1.    跟踪死锁 2.    分析死锁链和原因 3.    一些解决办法 关于跟踪死锁,我们首先需要打开1222标记,例如DBCC TRACEON(1222,-1), 他将收集的信息写入到死锁事件发生的服务器上的日志文件中。同时建议打开Profiler的跟踪信息: 如果发生了死锁,需要分析死锁发生的根源在哪里?我们不是很清楚你的具体发生死锁的形态是怎么样的。 关于死锁的实例也多,这里不再举例。 这里只是提出一些可以解决的思路: 1.    减少锁的争用 2.    减少资源的访问数 3.    按照相同的时间顺序访问资源 减少锁的争用,可以从几个方面入手 1.    使用锁提示,比如为查询语句添加WITH (NOLOCK), 但这还取决于你的应用是否允许,大部分分布式的系统都是可以加WITH (NOLOCK), 金融行业可能需要慎重。 2.    调整隔离级别,使用MVCC,我们的数据库默认级别是READ COMMITED. 建议修改为读提交快照隔离级别,这样的话可以尽量读写不阻塞,只不过MVCC的ROW VERSION保存到TEMPDB下面,需要维护好TEMPDB。当然如果你的整个数据库隔离级别可以设置为READUNCOMMINTED,这些就不必了。 减少资源的访问数,可以从如下几个方面入手: 1.    使用聚集索引,非聚集INDEX的叶子页面与堆或者聚集INDEX的数据页面分离。因此,如果对非聚集INDEX 操作的话,会产生两个锁,一个是基本表,一个是非聚集INDEX。而聚集INDEX就不一样,聚集INDEX的叶子页面和表的数据页面相同,他只需要一个LOCK。 2.    查询语句尽量使用覆盖INDEX, 使用全覆盖INDEX,就不需要访问基本表。如果没有全覆盖,还会通过RID或者CLUSTER INDEX访问基本表,这样产生的LOCK可能会与其他SESSION争用。 按照相同的时间顺序访问资源: 确保每个事务按照相同的物理顺序访问资源。两个事务按照相同的物理顺序访问,第一个事务会获得资源上的锁而不会被第二个事务阻塞。第二个事务想获得第一个事务上的LOCK,但被第一个事务阻塞。这样的话就不会导致循环阻塞的情况。 ------------------------- 回 4楼(leamonjxl) 的帖子 两种方式看你的业务怎么应用。这里不仅是分表的问题,还可能存在分库,分服务器的问题。取决与你的架构方案。 物理分表+视图,这是一种典型的冷热数据分离的方案,大致的做法如下: 1.    保留最近3个月的数据为当前表,也即就是我们说的热数据 2.    将其他数据按照某种规则分表,比如按照年或者季度或者月,这部分是相对冷的数据 分表后,涉及到几个问题: 第一问题是,转移数据的过程,一般是晚上业务比较闲来转移,转移按照一定的规则来做,始终保持3个月,这个定时任务本身也很消耗时间 再者,关于查询部分,我想你们的数据库服务器应该通过REPLICATION做了读写分离的吧,主库我觉得压力不会太大,主要是插入或者更新,只读需要做视图来包含全部的数据,但通过UNION ALL所有分表的数据,最后可能还是非常大,在某些情况下,性能不一定好。这个是不是业务上可以解决。比如,对于1年前的历史数据,放在单独的只读上,相对热的数据放在一起,这样压力也会减少。 分区表的话,因为涉及到10亿数据,要有好的分区方案,相对比较简单一点。但对于10亿的大表,始终是个棘手的问题,无论分多少个分区,单个服务器的资源也是有限的。可扩展性方面也存在问题,比如在只读上你没有办法做服务器级别的拆分了。这可能也会造成瓶颈。 现在很多企业都在做分库分表,这些的要解决一些高并发,数据量大的问题。不知是否考虑过类似于中间件的方案,比如阿里巴巴的TDDL类似的方案,如果你有兴趣,可以查询相关资料。 ------------------------- 回 9楼(jiangnii) 的帖子 阿里云数据库不仅提供一个数据库,还提供数据库一种服务。阿里云数据库不仅简化了基础架构的部署,还提供了数据库高可用性架构,备份服务,性能诊断服务,监控服务,专家服务等等,保证用户放心、方便、省心地使用数据库,就像水电一样。以前的运维繁琐的事,全部由阿里云接管,用户只需要关注数据库的使用和具体的业务就好。 关于优化和在云数据库上处理大数据量或复杂的数据操作方面,在云数据库上是一样的,没有什么特别的地方,不过我们的云数据库是使用SSD磁盘,这个比普通的磁盘要快很多,IO上有很大的优势。目前单个实例支持1T的数据量大小。陆续我们会推出更多的服务,比如索引诊断,连接诊断,容量分析,空间诊断等等,这些工作可能是专业的DBA才能完成的,以后我们会提供自动化的服务来为客户创造价值,希望能帮助到客户。 谢谢! ------------------------- 回 12楼(daniellin17) 的帖子 这个问题我不知道是否是两个问题,一个是并行度,另一个是并发,我更多理解是吞吐量,单就并行度而言。 提高并行度需要考虑的因素有: 1.    可用于SQL SERVER的CPU数量 2.    SQL SERVER的版本(32位/64位) 3.    可用内存 4.    执行的查询类型 5.    给定的流中处理的行数 6.    活动的并发连接数量 7.    sys.configurations参数:affinity mask/max server memory (MB)/ max degree of parallelism/ cost threshold for parallelism 以DOP的参数控制并行度为例,设置如下: SELECT * FROM sys.configurations WITH (NOLOCK) WHERE name = 'max degree of parallelism' EXEC sp_configure 'max degree of parallelism',2 RECONFIGURE WITH OVERRIDE 经过测试,DOP设置为2是一个比较适中的状态,特别是OLTP应用。如果设置高了,会产生较多的SUSPEND进程。我们可以观察到资源等待资源类型是:CXPACKET 你可以用下列语句去测试: DBCC SQLPERF('sys.dm_os_wait_stats',CLEAR) SELECT * FROM sys.dm_os_wait_stats WITH (NOLOCK) ORDER BY 2 DESC ,3 DESC 如果是吞吐量的话。优化的范围就很广了。优化是系统性的。硬件配置我们选择的话,大多根据业务量来预估,然后考虑以下: 1.    RAID的划分,RAID1适合存放事务日志文件(顺序写),RAID10/RAID5适合做数据盘,RAID10是条带化并镜像,RAID5条带化并奇偶校验 2.    数据库设置,比如并行度,连接数,BUFFER POOL 3.    数据库文件和日志文件的存放规则,数据库文件的多文件设置规则 4.    TEMPDB的优化原则,这个很重要的 5.    表的设计方面根据业务类型而定 6.    CLUSTERED INDEX和NONCLUSTERED INDEX的设计 7.    阻塞分析 8.    锁和死锁分析 9.    执行计划缓冲分析 10.    存储过程重编译 11.    碎片分析 12.    查询性能分析,这个有很多可以优化的方式,比如OR/UNION/类型转换/列上使用函数等等 我这里列举一个高并发的场景: 比如,我们的订单,比如搞活动的时候,订单刷刷刷地增长,单个实例可能每秒达到很高很高,我们分析到最后最常见的问题是HOT PAGE问题,其等待类型是PAGE LATCH竞争。这个过程可以这么来处理,简单列几点,可以参考很多涉及高并发的案例: 1.    数据库文件和日志文件分开,存放在不同的物理驱动器磁盘上 2.    数据库文件需要与CPU个数形成一定的比例 3.    表设计可以使用HASH来作为表分区 4.    表可以设置无序的KEY/INDEX,比如使用GUID/HASH VALUE来定义PRIMARY KEY CLUSTER INDEX 5.    我们不能将自增列设计为聚集INDEX 这个场景只是针对高并发的插入。对于查询而言,是不适合的。但这些也可能导致大量的页拆分。只是在不同的场景有不同的设计思路。这里抛砖引玉。 ------------------------- 回 13楼(zuijh) 的帖子 ECS上现在有两种磁盘,一种是传统的机械臂磁盘,另一种是SSD,请先诊断你的IO是否出现了问题,本帖中有提到如何判断磁盘出现问题的相关话题,请参考。如果确定IO出现问题,可以尝试使用ECS LOCAL SSD。当然,我们欢迎你使用云数据库的产品,云数据库提供了很多有用的功能,比如高可用性,灵活的备份方案,灵活的弹性方案,实用的监控报警等等。 ------------------------- 回 17楼(豪杰本疯子) 的帖子 我们单个主机或者单个实例的资源总是有限的,因为涉及到很大的数据量,对于存储而言是个瓶颈,我曾使用过SAN和SAS存储,SAN存储的优势确实可以解决数据的灵活扩展,但是SAN也分IPSAN和FIBER SAN,如果IPSAN的话,性能会差一些。即使是FIBER SAN,也不是很好解决性能问题,这不是它的优势,同时,我们所有DB SERVER都连接到SAN上,如果SAN有问题,问题涉及的面就很广。但是SAS毕竟空间也是有限的。最终也会到瓶颈。数据量大,是造成性能问题的直接原因,因为我们不管怎么优化,一旦数据量太大,优化的能力总是有限的,所以这个时候更多从架构上考虑。单个主机单个实例肯定是抗不过来的。 所以现在很多企业在向分布式系统发展,对于数据库而言,其实有很多形式。我们最常见的是读写分离,比如SQL SERVER而言,我们可以通过复制来完成读写分离,SQL SERVER 2012及以后的版本,我们可以使用ALWAYSON来实现读写分离,但这只能解决性能问题,那空间问题怎么解决。我们就涉及到分库分表,这个分库分表跟应用结合得紧密,现在很多公司通过中间件来实现,比如TDDL。但是中间件不是每个公司都可以玩得转的。因此可以将业务垂直拆分,那么DB也可以由此拆分开来。举个简单例子,我们一个典型的电子商务系统,有订单,有促销,有仓库,有配送,有财务,有秒杀,有商品等等,很多公司在初期,都是将这些放在一个主机一个实例上。但是这些到了一定规模或者一定数据量后,就会出现性能和硬件资源问题,这时我们可以将它们独立一部分获完全独立出来。这些都是一些好的方向。希望对你有所帮助。 ------------------------- 回 21楼(dt) 的帖子 问: 求大数据量下mysql存储,优化方案 分区好还是分表好,分的过程中需要考虑事项 mysql高并发读写的一些解决办法 答: 分区:对于应用来说比较简单,改造较少 分表: 应用需较多改造,优点是数据量太大的情况下,分表可以拆分到多个实例上,而分区不可以。 高并发优化,有两个建议: 1.    优化事务逻辑 2.    解决mysql高并发热点,这个可以看看阿里的一个热点补丁: http://www.open-open.com/doc/view/d58cadb4fb68429587634a77f93aa13f ------------------------- 回 23楼(aelven) 的帖子 对于第一个问题.需要看看你的数据库架构是什么样的?比如你的架构具有高可用行?具有读写分离的架构?具有群集的架构.数据库应用是否有较冷门的功能。高并发应该不是什么问题。可扩展性方面需要考虑。阿里云数据库提供了很多优势,比如磁盘是性能超好的SSD,自动转移的高可用性,没有任何单点,自动灵活的备份方案,实用的监控报警,性能监控服务等等,省去DBA很多基础性工作。 你第二个问题,看起来是一个高并发的场景,这种高并发的场景容易出现大量的LOCK甚至死锁,我不是很清楚你的业务,但可以建议一下,首先可以考虑快照隔离级别,实现行多版本控制,让读写不要阻塞。至于写写过程,需要加锁的粒度降低最低,同时这种高并发也容易出现死锁,关于死锁的分析,本帖有提到,请关注。 第三个问题,你用ECS搭建自己的应用也是可以的,RDS数据库提供了很多功能,上面已经讲到了。安全问题一直是我们最看重的问题,肯定有超好的防护的。 ------------------------- 回 26楼(板砖大叔) 的帖子 我曾经整理的关于索引的设计与规范,可以供你参考: ----------------------------------------------------------------------- 索引设计与规范 1.1    使用索引 SQL SERVER没有索引也可以检索数据,只不过检索数据时扫描这个表而异。存储数据的目的,绝大多数都是为了再次使用,而一般数据检索都是带条件的检索,数据查询在数据库操作中会占用较大的比例,提高查询的效率往往意味着整个数据库性能的提升。索引是特定列的有序集合。索引使用B-树结构,最小优化了定位所需要的键值的访问页面量,包含聚集索引和非聚集索引两大类。聚集索引与数据存放在一起,它决定表中数据存储的物理顺序,其叶子节点为数据行。 1.2    聚集索引 1.2.1    关于聚集索引 没聚集索引的表叫堆。堆是一种没有加工的数据,以行标示符作为指向数据存储位置的指针,数据没有顺序。聚集索引的叶子页面和表的数据页面相同,因此表行物理上按照聚集索引列排序,表数据的物理顺序只有一种,所以一个表只有一个聚集索引。 1.2.2    与非聚集索引关系 非聚集索引的一个索引行包含指向表对应行的指针,这个指针称为行定位器,行定位器的值取决于数据页保存为堆还是被聚集。若是堆,行定位器指向的堆中数据行的行号指针,若是聚集索引表,行定位器是聚集索引键值。 1.2.3    设计聚集索引注意事项     首先创建聚集索引     聚集索引上的列需要足够短     一步重建索引,不要使用先DROP再CREATE,可使用DROP_EXISTING     检索一定范围和预先排序数据时使用,因为聚集索引的叶子与数据页面相同,索引顺序也是数据物理顺序,读取数据时,磁头是按照顺序读取,而不是随机定位读取数据。     在频繁更新的列上不要设计聚集索引,他将导致所有的非聚集所有的更新,阻塞非聚集索引的查询     不要使用太长的关键字,因为非聚集索引实际包含了聚集索引值     不要在太多并发度高的顺序插入,这将导致页面分割,设置合理的填充因子是个不错的选择 1.3    非聚集索引 1.3.1    关于非聚集索引 非聚集索引不影响表页面中数据的顺序,其叶子页面和表的数据页面时分离的,需要一个行定位器来导航数据,在将聚集索引时已经有说明,非聚集索引在读取少量数据行时特别有效。非聚集索引所有可以有多个。同时非聚集有很多其他衍生出来的索引类型,比如覆盖索引,过滤索引等。 1.3.2    设计非聚集索引     频繁更新的列,不适合做聚集索引,但可以做非聚集索引     宽关键字,例如很宽的一列或者一组列,不适合做聚集索引的列可作非聚集索引列     检索大量的行不宜做非聚集索引,但是可以使用覆盖索引来消除这种影响 1.3.3    优化书签查找 书签会访问索引之外的数据,在堆表,书签查找会根据RID号去访问数据,若是聚集索引表,一般根据聚集索引去查找。在查询数据时,要分两个部分来完成,增加了读取数据的开销,增加了CPU的压力。在大表中,索引页面和数据页面一般不会临近,若数据只存在磁盘,产生直接随机从磁盘读取,这导致更多的消耗。因此,根据实际需要优化书签查找。解决书签查找有如下方法:     使用聚集索引避免书签查找     使用覆盖索引避免书签查找     使用索引连接避免数据查找 1.4    聚集与非聚集之比较 1.4.1    检索的数据行 一般地,检索数据量大的一般使用聚集索引,因为聚集索引的叶子页面与数据页面在相同。相反,检索少量的数据可能非聚集索引更有利,但注意书签查找消耗资源的力度,不过可考虑覆盖索引解决这个问题。 1.4.2    数据是否排序 如果数据需要预先排序,需要使用聚集索引,若不需要预先排序就那就选择聚集索引。 1.4.3    索引键的宽度 索引键如果太宽,不仅会影响数据查询性能,还影响非聚集索引,因此,若索引键比较小,可以作为聚集索引,如果索引键够大,考虑非聚集索引,如果很大的话,可以用INCLUDE创建覆盖索引。 1.4.4    列更新的频度 列更新频率高的话,应该避免考虑所用非聚集索引,否则可考虑聚集索引。 1.4.5    书签查找开销 如果书签查找开销较大,应该考虑聚集索引,否则可使用非聚集索引,更佳是使用覆盖索引,不过得根据具体的查询语句而看。 1.5    覆盖索引 覆盖索引可显著减少查询的逻辑读次数,使用INCLUDE语句添加列的方式更容易实现,他不仅减小索引中索引列的数据,还可以减少索引键的大小,原因是包含列只保存在索引的叶子级别上,而不是索引的叶子页面。覆盖索引充当一个伪的聚集索引。覆盖索引还能够有效的减少阻塞和死锁的发生,与聚集索引类似,因为聚集索引值发生一次锁,非覆盖索引可能发生两次,一次锁数据,一次锁索引,以确保数据的一致性。覆盖索引相当于数据的一个拷贝,与数据页面隔离,因此也只发生一次锁。 1.6    索引交叉 如果一个表有多个索引,那么可以拥有多个索引来执行一个查询,根据每个索引检索小的结果集,然后就将子结果集做一个交叉,得到满足条件的那些数据行。这种技术可以解决覆盖索引中没有包含的数据。 1.7    索引连接 几乎是跟索引交叉类似,是一个衍生品种。他将覆盖索引应用到交叉索引。如果没有单个覆盖索引查询的索引而多个索引一起覆盖查询,SQL SERVER可以使用索引连接来完全满足查询而不需要查询基础表。 1.8    过滤索引 用来在可能没有好的选择性的一个或者多个列上创建一个高选择性的关键字组。例如在处理NULL问题比较有效,创建索引时,可以像写T-SQL语句一样加个WHERE条件,以排除某部分数据而检索。 1.9    索引视图 索引视图在OLAP系统上可能有胜算,在OLTP会产生过大的开销和不可操作性,比如索引视图要求引用当前数据库的表。索引视图需要绑定基础表的架构,索引视图要求企业版,这些限制导致不可操作性。 1.10    索引设计建议 1.10.1    检查WHERE字句和连接条件列 检查WHERE条件列的可选择性和数据密度,根据条件创建索引。一般地,连接条件上应当考虑创建索引,这个涉及到连接技术,暂时不说明。 1.10.2    使用窄的索引 窄的索引有可减少IO开销,读取更少量的数据页。并且缓存更少的索引页面,减少内存中索引页面的逻辑读取大小。当然,磁盘空间也会相应地减少。 1.10.3    检查列的唯一性 数据分布比较集中的列,种类比较少的列上创建索引的有效性比较差,如果性别只有男女之分,最多还有个UNKNOWN,单独在上面创建索引可能效果不好,但是他们可以为覆盖索引做出贡献。 1.10.4    检查列的数据类型 索引的数据类型是很重要的,在整数类型上创建的索引比在字符类型上创建索引更有效。同一类型,在数据长度较小的类型上创建又比在长度较长的类型上更有效。 1.10.5    考虑列的顺序 对于包含多个列的索引,列顺序很重要。索引键值在索引上的第一上排序,然后在前一列的每个值的下一列做子排序,符合索引的第一列通常为该索引的前沿。同时要考虑列的唯一性,列宽度,列的数据类型来做权衡。 1.10.6    考虑索引的类型 使用索引类型前面已经有较多的介绍,怎么选择已经给出。不再累述。 ------------------------- 回 27楼(板砖大叔) 的帖子 这两种都可以吧。看个人的喜好,不过微软现在的统一风格是下划线,比如表sys.all_columns/sys.tables,然后你再看他的列全是下划线连接,name     /object_id    /principal_id    /schema_id    /parent_object_id      /type    /type_desc    /create_date    /modify_date 我个人的喜好也是喜欢下划线。    

石沫 2019-12-02 01:34:30 0 浏览量 回答数 0

问题

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

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

回答

回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

回答

不良的编程习惯TOP1:粘贴复制 在学生时代,我们都知道抄袭是不对的。但在工作中,这方面的规则还很模糊。虽然有些代码块是不能盗用的——不要把专有代码拷贝到你的堆栈中,尤其是这些代码有标记版权信息。这种时候你应该编写自己的版本,老板付你薪水就是要做正事的。 但是当原始创作者想要共享代码时,问题就变得复杂了。这些共享代码也许放到了某个在线编程论坛上,也许它们是带有许可证(BSD,MIT)的开放源代码,允许使用一到三个函数。你使用这些共享代码是没有问题的,而且你上班是为了解决问题,而不是重新发明轮子。 大多数情况下,复制代码的优势非常明显,小心对待的话问题也不大。至少那些从靠谱的来源获得的代码已经被大致“检查“过了。 问题的复杂之处在于,这些共享代码是否存在一些未发现的错误,代码的用途或底层数据是否存在一些特别的假设。也许你的代码混入了空指针,而原始代码从未检查过。如果你能解决这些问题,那么就可以理解为你的老板得到了两位程序员共同努力的成果。这就是某种形式的结对编程,而且用不着什么高大上的办公桌。 不良的编程习惯TOP2:非函数式代码 在过去十年间,函数范式愈加流行。喜欢用嵌套函数调用来构建程序的人们引用了很多研究成果。这些研究表明,与旧式的变量和循环相比,函数式编程代码更安全,错误更少,而且可以随程序员的喜好任意组合在一起。粉丝们十分追捧函数式编程,还会在代码审查和拉取请求中诋毁非函数式方法。关于这种方法的优势,他们的观点其实并没有错。 但有时你需要的仅仅是一卷胶带而已。精心设计并细心计划的代码需要花费很多时间,不仅需要花费时间想象,还需要构建和之后导航的时间。这些都增加了复杂性,并且会花费很多的时间与精力。开发漂亮的函数式代码需要提前做计划,还要确保所有数据都通过正确的途径传递。有时找出并更改变量会简单得多,可能再加个注释说明一下就够了。就算要在注释中为之后的程序员致以冗长而难懂的歉意,也比重新设计整个系统,把它扳回正轨上要省事得多。 不良的编程习惯第 3 位:非标准间距 软件中的大多数空格都不会影响程序的性能。除少数使用间距指示代码块的语言(如 Python)外,大多数空格对程序行为的影响为零。尽管如此,仍然有一些得了强迫症的程序员会数空格,并坚持认为它们很重要。曾有这样一位程序员以最严肃的口吻告诉我的老板,说我正在写“非标准代码”,还说他一眼就看出来了。我的错咯?因为我没在等号的两侧放置空格,违反了 ESLint space-infix-ops 规则[1]。 有时候你只要操心那些更深层的内容就行了,谁管什么空格的位置。也许你担心数据库过载,也许你担心空指针可能会让你的代码崩溃。一套代码中,几乎所有的部分都比空格更重要,就算那些喜欢走形式的标准委员会写出来一大堆规则来限制这些空格或制表符的位置,那又如何呢。 令人欣喜的是,网上可以找到一些很好用的工具来自动重新格式化你的代码,让你的代码遵守所有精心定义的 linting 规则。人类不应该在这种事情上浪费时间和脑细胞。如果这些规则这么重要,我们就应该用工具来解决这些问题。 不良的编程习惯第 4 位:使用 goto 禁止使用 goto 的规则可以追溯到许多结构化编程工具还没有出现的时代。如果程序员想创建一个循环或跳转到另一个例程,则需要键入 goto,后跟一个行号。多年之后,编译器团队开始允许程序员使用字符串标签来代替行号。这在当时被认为是一项热门的新特性。 有的人把这样做法的结果称为“意大利面条式代码”。因为以后没人能读懂你的代码,没人搞得清楚执行路径。成为一团混乱的线程,缠结在一起。Edsger Dijkstra 写过一篇题为“我们认为 goto 声明是有害的”的一篇文章[2],号召大家拒绝使用这个命令。 但是绝对分支并不是问题所在,问题在于它产生的那堆纠缠的结果。一般来说,精心设计的 break 或 return 能提供有关该位置的代码执行情况的非常清晰的陈述。有时,将 goto 添加到一个 case 语句中所生成的东西与联 if-then-else 块的相比,结构更正确的列表理解起来更容易。 也有反例。苹果 SSL 堆栈中的“goto fail”安全漏洞[3]就是一个很好的例子。但是,如果我们谨慎地避免 case 语句和循环中出现的一些问题,我们就可以插入很好用的绝对跳转,使代码读者更容易理解正在发生的事情。有时我们可以放一个 break 或 return,不仅更简洁,而且大家读起来更愉快,除了那些讨厌 goto 的人们。 不良的编程习惯第 5 位:不声明类型 热爱类型化语言的人们有他们的理由。当我们为每个变量的数据类型添加清晰的声明时,我们会编写更好,错误更少的代码。花点时间来阐明类型,就可以帮助编译器在代码开始运行之前标记出愚蠢的错误。这可能会很痛苦,但也会有回报。这是一种编程的笨办法,就是为了避免错误。 时代变了。许多较新的编译器已经足够聪明了,它们可以在查看代码时推断出类型。它们可以在代码中前后移动,最后确认变量应该是 string 或 int,抑或是其他类型。而且,如果推断出来的这些类型没法对齐,则编译器会给出错误标志。它们不需要我们再类型化变量了。 换句话说,我们可以省略一些最简单的声明,然后就能轻松节省一些时间了。代码变得更简洁,代码读者也往往能猜出 for 循环中名为 i 的变量是一个整数。 不良的编程习惯第 6 位:溜溜球代码 程序员喜欢将其称为“yo-yo 代码”。首先,这些值将存储为字符串,然后将它们解析为整数,接下来将它们转换回字符串。这种方法效率极低。你几乎能感受到一大堆额外负载让 CPU 不堪重负的样子。能快速编写代码的聪明程序员会调整自己的代码架构,以最大程度地减少转换。因为他们安排好了计划,他们的代码也能跑得更快。 但不管你信不信,有时溜溜球代码也是有意义的。有的时候,你需要用一个可以在自己的黑匣子里搞定一大堆智能操作的库。有的老板花了很多钱,请好多天才做出来这么一个库。如果这个库需要字符串形式的数据,那么你就得给它字符串,就算你最近刚把数据转换为整数也得再转回去。 当然,你可以重写所有代码以最大程度地减少转换,但这会花费一些时间。有时,代码多运行一分钟、一小时、一天甚至一周也是可以接受的,因为重写代码会花费更多时间。有时候,增加技术债务要比重新建立一笔技术债的成本更低些。 有时这种库里面不是专有代码,而是你很久以前编写的代码。有时,转换一次数据要比重写该库中的所有内容更省事。这种时候你就可以编写悠悠球代码了,不要怕,我们都遇到过这种事情。 不良的编程习惯第7位:编写自己的数据结构 有一条标准规则是,程序员在大二学完数据结构课程后,再也不要编写用于存储数据的代码了。已经有人编写过了我们所需要的所有数据结构,并且他们的代码经过了多年的测试和重新测试。这些结构与语言打包在一起,还可能是免费的。你自己写的代码只会是一堆错误。 但有的时候数据结构库的速度有点缓慢。有时候我们被迫使用的标准结构并不适合我们自己的代码。有时,库会要求我们在使用它的结构之前重新配置数据。有时,这些库带有笨重的保护,还有一些诸如线程锁定之类的特性,而我们的代码并不需要它们。 发生这种情况时就该编写我们自己的数据结构了。有时我们自己的结构会快很多,还可能让我们的代码更整洁,因为我们不需要一大堆额外的代码来重新精确地格式化数据。 不良的编程习惯第 8 位:老式循环 很久以前,创建 C 语言的某人想将所有抽象可能性封装在一个简单的构造中。这个构造开始时要做一些事情,每次循环都要做一些事情,所有事情都完成时还有一些方法来提示我们。当时,这似乎是一种拥有无限可能性的完美语法。 此一时彼一时,如今一些现代评论者只看到了其中的麻烦,发生的事情太多了,所有这些可能性既可能向善也可能作恶。这种构造让阅读和理解代码变得非常困难。他们喜欢更加函数式的的范式,其中没有循环,只有应用到列表的函数,还有映射到某些数据的计算模板。 有时无循环方法更简洁,尤其是当我们只有一个简单的函数和一个数组的时候。但还有些时候,老式的循环要简单得多,因为它可以做更多事情。例如,当你找到第一个匹配项后就立刻停止搜索,这样的代码就简单得多。 此外,要对数据执行多项操作时,映射函数会要求更严格的编码。假设你要对每个数字取绝对值,然后取平方根,最快的方案是先映射第一个函数,然后映射第二个函数,将数据循环两次。 不良的编程习惯第 9 位:在中间打破循环 从有一天开始,一个规则制定小组宣布每个循环都应该有一个“不变项”,就是一个在整个循环中都为真的逻辑语句。当不变量不再为真时,循环就结束了。这是处理复杂循环的好方法,但会带来一些令人抓狂的约束,例如禁止我们在循环中间使用 return 或 break。这条规则是禁止 goto 语句规则的子集。 这个理论很不错,但它通常会导致代码变得更复杂。考虑以下这种简单的情况,其中会扫描一个数组,找出通过测试的一个条目: while (i<a.length){ ... if (test(a[i]) then return a[i]; ... } 喜欢循环不变项的人们宁愿我们添加另一个布尔变量,将其称为 notFound,然后这样用它: while ((notFound) && (i<a.length){ ... if (test(a[i])) then notFound=false; ... } 如果这个布尔名称取得很合适,那就会是一段自我注释得很好的代码。它可以让大家理解起来更容易。但这也增加了复杂性。这还意味着要分配另一个局部变量并阻塞一个寄存器,编译器可能没那么聪明,没法修复这个错误。 有时使用 goto 或 jump 会更简洁。 不良的编程习惯第10位:重载运算符和函数 一些有趣的语言会让你绕一些大弯子,比如说重新定义看起来应该是常量的元素值。拿 Python 来说,至少在 2.7 版及更低版本中,它允许你键入 TRUE=FALSE。这不会引发某种逻辑崩溃,也不会导致宇宙的终结;它只是交换了 TRUE 和 FALSE 的含义。你还可以使用 C 预处理器和其他一些语言来玩这种危险的游戏。还有一些语言允许你重新定义加号之类的运算符。 有时候,在一大段代码中重新定义一个或一些所谓常量,结果效率会更高。有时,老板会希望代码执行完全不同的操作。当然,你可以检查代码,逐一更改对应的部分,也可以干脆重新定义现实来节省时间。别人会觉得你是天才。用不着重写庞大的库,只需翻转一下即可。 这里也许应该划一条底线。无论这种做法多有意思,看起来多聪明,你都不应该在家里做实验。这太危险了——我是认真的。

茶什i 2019-12-30 11:01:01 0 浏览量 回答数 0

回答

Re我和iDBCloud登录数据库的故事 11到13年做DBA的时候,最早接触的是iDB,我的理解之所以叫iDB应该是表达我的数据库的含义吧,估计我还是上学的时候就已经有了,目前iDB已经迭代到3.0,明年初会发布4.0,从DBA视角上看iDB就是可以review业务SQL,自动执行线上DDL,业务数据提取的申请和审批,WEB上的数据查询,最近做产品经理后才有机会系统的审视iDB(一个包含研发支撑、安全管控的企业级数据库管理产品),支撑了淘宝、天猫、支付宝(现在叫蚂蚁金服)的研发流程,保障了每年的双十一,但iDB Cloud与iDB不是一个产品,iDB是企业版的数据库管理产品,iDB Cloud则定位于个人版数据管理,相比企业中的流程约束,iDB Cloud更期望给大家提供在约束下的易用性最大化的灵活数据管理服务! ------------------------- Re我和iDBCloud登录数据库的故事 这个月实例信息-实时性能UI改版发布,新版看起来还是比较舒服的!这个我在5元RDS大促时买的,没有跑业务,所以指标都是0,哈哈 实时性能的原型取自阿里DBA团队的传奇(朱旭)之手:orzdba,貌似很久之前已经开源,谷歌下便知! 翻出之前做DBA使用orzdba观察测试机器压测的截图,orzdba是用perl写的,检查项还是蛮多的,比如io吞吐量、rt、主机的load、swap、innodb row、innodb状态,这些是iDB Cloud没有的功能,iDB Cloud通过用户登录账号访问数据库,只能拿到MySQL进程内存中的状态信息,没有权限拿到主机指标,不过innodb相关信息是可以拿到的,但是考虑一般只有DBA才会关注这些细节,所以没开放,不知道大家还会关注什么指标?有没有办法拿到主机的指标? ------------------------- 回5楼ringtail的帖子 刷新页面,类似关闭并重新打开,啥都没了,这个应该是正常的行为,话说为什么要刷新呢,我记得首页性能指标每5分钟自动刷新,即使点击页面上提供的刷新是没啥事的,而实时性能是每4秒更新一行的,还有什么场景要刷洗整个页面是我没想到的吗? ------------------------- 回7楼ringtail的帖子 目前据我所知,真心还做不到刷新不丢iDB Cloud已经打开的选项卡、sql语句和执行结果什么的,现在只能在刷新时加一个“导航确认”,减少手痒式误刷新,哈哈 ------------------------- Re我和iDBCloud登录数据库的故事 翻工单时,发现有人关心使用iDB Cloud是否会收取流量费,我也没搞清楚,于是问了几个同事,终于把场景基本覆盖了,最终结论: 只要你不把你的RDS实例切换成外网(公网)模式的同时再导出或查询数据就不会收取流量费! 由于那几个工单已经关闭,我就在这里回复下大家,希望那几个朋友能看到 ------------------------- 回9楼yzsind的帖子 一定不会辜负领导的期望,努力工作,争取升职加薪,当上总经理,出任ceo,迎娶白富美,想想还有点小激动 ------------------------- 回10楼佩恩六道的帖子 可能文字不好理解整体的流量计费情况,中午用我那小学的美术细胞,完成了一副“巨作”! ------------------------- Re我和iDBCloud登录数据库的故事 刚才看到一个工单(iDB Cloud点击登录无效),这个工单已经处理完毕,但我觉得可以把售后同学的方法和大家分享下! 以后遇到点击登录无效、登录后菜单栏点击无效、页面展示不全,很可能是浏览器兼容设置的问题! 浏览器兼容设置的问题: 1.检查浏览器是否安装了AdBlockPlus(火狐浏览器的一个扩展),用火狐浏览器的用户遇到类似问题要注意这一点 2.IE浏览器的话就调整下兼容性模式(http://jingyan.baidu.com/article/fcb5aff791bb47edaa4a7115.html ),并进入开发者模式再测试下IDB Cloud 如果上述2招还是解决不了,记得留言给我! ------------------------- Re我和iDBCloud登录数据库的故事 今天看工单时发现有个朋友反馈,包含mediumblob类型字段的表在做导出后,导出文件中没有mediumblob类型字段! 其实导出时默认是不会导出BLOB类型字段,但是在导出-高级选项中是可以选择导出BLOB,但是BLOB字段只能以16进制格式导出,试想一个WORD文档或者一首歌曲,16进制导出后,没啥意义! BOLB字段支持WEB界面上传和下载,是原文件呀,哈哈! ------------------------- Re我和iDBCloud登录数据库的故事 未来几天休假,去考驾照 ------------------------- Re我和iDBCloud登录数据库的故事 看工单和论坛中,有用户会抱怨产品不好用,然后就消失了,真的好可惜! 作为产品经理是很想倾听这些抱怨背后的真实想法,期待可以直接对话,无论是功能缺失,还是操作不便,哪怕是使用上的一种感觉或产品散发的味道不对都可以,不求需求,只求对话! ------------------------- Re我和iDBCloud登录数据库的故事 感谢你的关注和支持! 产品说到底不是产品经理个人的,也不是哪个企业的,而是用户的产品,水能载舟亦能覆舟,产品经理和企业只不过在帮用户把需求实现而已,所以我们会一直坚持下去,坚持和用户一起把iDB Cloud做得更好 ------------------------- Re我和iDBCloud登录数据库的故事 最近几天公司感冒发烧的同学很多,我也是坚持了好几天才沦陷的,这是在我记忆中来杭州4年第一次发烧,看来20多年在东北积累的体质终于被消耗殆尽,不过意外收获是在高烧间隔清醒之际对最近自己的所作所为反倒有了一些悔悟,有些是工作上,有些是做人上 ------------------------- 回24楼zhouzhenxing的帖子 可以的,iDB Cloud对RDS公网和私网模式都是支持的! 你可以在RDS控制台-账号管理中 新建你的数据库账号,然后还是在RDS控制台的右上角,点击“登录数据库”就可以进入iDB Cloud了,建议你先自己试着玩玩,有困惑的话我们一同讨论 ------------------------- 回24楼zhouzhenxing的帖子 iDB Cloud在官网上有2个手册,写的比较官方,可能对你用处不大,我其实不太喜欢写什么手册,如果一个产品做的体验不好,只能靠手册来弥补还是有点low,不过我已经在想如何不low了,还是那句话 有困惑的话我们一同讨论 http://help.aliyun.com/doc/view/13526530.html?spm=0.0.0.0.6W7Qx1 http://help.aliyun.com/view/11108238_13861850.html?spm=5176.7224961.1997285473.4.Irtizv ------------------------- Re我和iDBCloud登录数据库的故事 都说在产品上做加法容易,做减法难,我理解无论产品功能还是工作上,给予总会得到别人的喜欢,而要求或收回时会得到对方的负面情绪,因此趋利避害,尽量不做减法,但有时候很难避免,这就要想想为什么要做减法? 多数都是之前错误选择,做了过多的加法,因为普通的加法很好做,人们往往会趋之如骛,但是真正、正确的加法是要在拒绝几十到上百种选择基础上的最终选择,将复杂解决方案以极简形式展现出来,而不是解决方案和功能的堆积,所以未经严格挑选的加法对产品是有害的,工作也一样,不要贸然接受新工作,保证核心精力投入到核心工作上,摊子铺得太大,一定会遇到心力瓶颈,而心力一旦枯竭,再强的脑力也无法施展,任何一项工作都是以大量心力付出为前提,脑力提升我找到了一些办法,心力提升却一筹莫展,所以只好专注,要不全心投入,要不置身事外,今后功能和工作都要适时做做减法了! ------------------------- Re我和iDBCloud登录数据库的故事 今天有个同事转给我一个工单,说从深圳云管理系统界面的iDB Cloud上看到库是utf8,而后端开发人员说库是gbk的,我查看了工单中截图附件(RDS控制台-参数设置),虽然从工单中无法完全断定用户遇到的问题,我还是大胆猜测下: 我看到截图上的character_set_server参数,首先character_set_server是RDS唯一开放的关于字符集的参数,但其实这个参数与用户在iDB Cloud上看到数据是否乱码没有关系,character_set_server其实就是默认的内部操作字符集,只有当字段->表->库都没有设置CHARACTER SET,才会使用character_set_server作为对应字段-表-库的默认字符集! 透露一个秘诀(传男也传女): (1)让你的字段-表-库的字符集都是utf8; (2)在iDB Cloud-命令窗口执行set names utf8;#会将character_set_client、character_set_connection和character_set_results都设置成utf8 只要让(1)和(2)字符集保持一致(utf8、gbk、latin1等),乱码就搞定了! 不清楚为什么截图会变成上面这样!把在iDB Cloud-命令窗口上执行的命令和结果也粘下 mysql>set names gbk; 执行成功,花费 7.59 ms. mysql>show  variables like '%char%'; +--------------------------+----------------------------------+ | Variable_name            | Value                            | +--------------------------+----------------------------------+ | character_set_client     | gbk                              | | character_set_connection | gbk                              | | character_set_database   | gbk                              | | character_set_filesystem | binary                           | | character_set_results    | gbk                              | | character_set_server     | gbk                              | | character_set_system     | utf8                             | | character_sets_dir       | /u01/mysql/share/mysql/charsets/ | +--------------------------+----------------------------------+ 共返回 8 行记录,花费 10.51 ms. mysql>set names utf8; 执行成功,花费 7.32 ms. mysql>show  variables like '%char%'; +--------------------------+----------------------------------+ | Variable_name            | Value                            | +--------------------------+----------------------------------+ | character_set_client     | utf8                             | | character_set_connection | utf8                             | | character_set_database   | gbk                              | | character_set_filesystem | binary                           | | character_set_results    | utf8                             | | character_set_server     | gbk                              | | character_set_system     | utf8                             | | character_sets_dir       | /u01/mysql/share/mysql/charsets/ | +--------------------------+----------------------------------+ 共返回 8 行记录,花费 10.32 ms. ------------------------- Re我和iDBCloud登录数据库的故事 你的专属BUG: 发现时间 资深用户 专属BUG 2015-02-03 23:06 啊啊啊啊8  实例信息-实时性能-参数说明-【delete】 表示InnoDB存储引擎表的写入(删除)记录行数 ------------------------- Re我和iDBCloud登录数据库的故事 用户“夫子然”反馈说iDB Cloud感觉没phpMyAdmin方便! 非常感谢这个用户的反馈,我先谈下我的理解,每个人使用产品都有一些固定的用例(use case),我无法承诺针对任何人的任何用例,都做到最短操作路径(方便),这个用户抛出的问题也是我一直在思考的,虽然无法100%,但是我们可以覆盖主流用例,只要绝大多数的常规操作室是方便的,少数非经常用的操作路径长点,应该能接受吧,我们已经在行动! 今天iDB Cloud发布了2.0.2,一个主要变化就是在左侧对象列表上增加了“列”和“索引”,正是我们分析数据看到在众多数据库对象中表的操作是最频繁的,而在表的操作中“列“和”索引“是最频繁的,这个版本将对“列”和“索引”的操作前置,缩短了主流用例路径,与用户“夫子然”的建议不谋而合,这只是开始,只要我们深挖,与功能和体验死磕,终有一天会让大家说iDB Cloud比phpMyAdmin方便! ------------------------- 回31楼sqlserverdba的帖子 非常感谢! 有你们作为后盾,有用户支持,才有iDB Cloud的现在和未来! ------------------------- 消失了几天,终于把科目三和科目四搞定了,昨天终于拿到驾照了之前在【17楼】总结了科目二的一些体会,今天也分享下科目三的一点点感受! 考试前几天,教练说是智能考(据说智能考比较简单,通过率很高),结果就留出考前2天练车时间,结果阴差阳错的换成了人工考(貌似是我们车是4个大老爷们,听教练说他一年最多抽到2次人工考就算多的啦,对此我只能呵呵),现在的问题就来了,4个人2天练车时间,一个人半天,那就从早到晚的练呗,我先简单描述下整个过程! 1.心态(1)从开始练车到考试通过,心情没有特别大的起伏,不过考前失眠还是有的,哈哈(2)另外三个人,有的信心满满,有的吊儿郎当,有的不言不语,我应该也属于不言不语那种 2.练习(1)4个人轮流练,虽然一天下来很累,但还能挺住,开的时好时坏,不过总体上在变好(2)开车的时候几乎意识不到什么的,关键是在后座自己去琢磨,回忆自己错在哪里,为什么会错 3.考试(1)考试单上说7:00考试,结果在寒风中等了1个小时,终于盼来了考官,一共5辆车考试,我们是第二辆车(2)第一辆车是2男2女,2女都挂,当时我们第二辆车是被要求跟在第一辆车后面的,所以看的一清二楚,比如连续3次手刹未放下导致起步失败、4档走转弯到对向车道等(3)接下来到我们了,4男0女,结果挂了2男(信心满满和吊儿郎当) 上面只是简单介绍了科目三过程,下面才是干货! 每年都有成千上万的人拿到驾照,我不认为自己牛,只是把我个人的应对方法和背后的原因拿出来分享下!练车其实就是教练的心智模型-翻译-语言-反译-我们的心智模型,让我们知道在什么情况做什么动作,预测路况,只要我们关于开车拥有了自己的心智模,开车就变成了一种本能,就像一旦学会了骑自行车,很难失去这种技能,在练车之前,我们是有自己关于开车的心智模型的,正所谓没吃过猪肉也见过猪跑,但是我们想想自己关于开车的心智模型是正确的吗?显然不是,不信你就试试去开车吧,抛开被交警抓之外,我想应该也能开起来,至于开的好不好,会不会一直开得好,我说不准,但是绝大多数人一定是开不好的,所以我们报驾校,除了硬性法律规定,驾校教练的确交会了很多东西,虽然很多是应试的技巧,这里就顺便说下这些技巧,技巧具体内容每家教练都会教的,而我想说的技巧其实就是“语言”,通过教练的“心智模型”-翻译出来的“语言”,接下来我们要做什么,“反译”将教练开车技巧的“语言”理解,首先你要虚心去接受,然后再去观察或运用,根据反馈把坏的放弃,把好的保留以便修正自己关于开车的“心智模型”,而“心智模型”最快速的形成方式就是亲身体验,所以一定要实战、要开车,还要经常开车,不断改进关于开车的“心智模型”,拿3个案例具体说下吧!【吊儿郎当】这两天都是下午才过来练车,开车时教练说一句话,他有十句等着,其中五句是解释自己为什么要这么做,另外五句是在问如果这种情况应该怎么做,如果那种情况怎么做,总是在关注自己想象中的场景,而不关注自己正在体验的场景,所以学来学去还是最初始的关于开车的“心智模型”,失败在“反译”这一步,认为只要听过就会了,结果被考官判直接挂掉并不予补考机会 【信心满满】与我们一直练车,对教练的话言听计从,而且也理解了,如果是上学时的考试或科目三智能考试一定没问题,但是面对人工考,评判是由交警而不是电脑,结果转向时没有观察后视镜,被考官迫停在路中间后开始补考,然后还是转向时没有观察后视镜,在路中间起步,之前学的技巧中没有应对的方法,结果还是挂了,教练也很惋惜,如果说他的失败,败于没有改进自己关于开车的“心智模型”,其实“反译”他做的很好,但是在运用、观察和反馈分析上做的不好,“心智模型”不是统一的标准,一定是个性化的,一定是自己认为是好的反馈、行为积累起来的,也只有“心智模型”才能在任何情况下帮助你做出判断,判断效果就取决于“心智模型”是否成熟,成熟的“心智模型”可以让在紧张、突发等情况下依然做出正确的判断,因为那是一种本能 【我】总说别人不好之处,也谈谈我自己,自然这些都是我事后分析总结的,练车过程中可没有感受到,我做的事情也很简单,就是“反译”和改进我的“心智模型”,“反译”,教练说什么,我就听什么,开车时来不及想,就在后座时在脑中模拟上演之前的场景并不断上演我不断修正的剧本,比如我的离合器总是抬的很快,经常熄火,特别是在路况复杂、指令突然时根本来不及思考如何应对,只能靠本能的时候,往往还是会快速抬离合器,因为我的“心智模型”中就是这么认为的,你可以说是离合器太低、座位太靠后,这些都是理由,如果是理由,那就去解决吧!我是这样做的,强制自己将抬离合器的动作拆成3步,即使不开车时也经常练习,慢慢的就变成了“心智模型”的一部分,自然在任何场景下都不会再出现离合器抬快熄火的情况了,这只是一个细节,其他细节也是类似,慢慢我的“心智模型”就建立起来了,开车技巧是很有用的,关键是你要理解这些技巧是要解决什么问题,你要解决相同问题时的做法是否相同,如果有不同之处是否正确,要去不断验证,如果是正确的,就改进到你的“心智模型”吧! PD不光光是要把产品做好,我认为一个好PD应该能让整个世界变得更好! ------------------------- Re我和iDBCloud登录数据库的故事 近期iDB Cloud将更名:DMS DMS (data management service) 数据管理服务 iDB Cloud从RDS起步,目前已经覆盖包括RDS、ADS、TAE,未来2个月还会覆盖万网和DRDS,同时ECS也开始兼容,“DMS”请各位新老用户,继续支持! ------------------------- Re我和iDBCloud登录数据库的故事 1.使用HTTPS iDB Cloud这个4月份中旬版本就会支持HTTPS,敬请期待! 2.设置账号是否允许登录iDB 3.31 会发布一个版本,这版本其中一个功能就是授权登录,允许实例owner设置该实例是否允许别人访问,允许谁可以访问 有如此心犀相通的用户,夫复何求!!! 还有什么建议? ------------------------- 回38楼pillowsky的帖子 好的,我先逐条对照分析下 ------------------------- Re我和iDBCloud登录数据库的故事 RDS数据库?RDS控制台-账号管理,检查下账号对不对,不行就重置密码 ------------------------- Re我和iDBCloud登录数据库的故事 3.31 DMS(原iDB Cloud) 在RDS上新版本发布! 【实例授权】 DMS for MySQL 2.1发布! 【会话统计】 DMS for SQL Server 2.0发布! 【E-R图】 【对象列表】 ------------------------- Re我和iDBCloud登录数据库的故事 你是想听客服回复?算了,我还是从DMS PD 看RDS的视角来分享下吧! RDS是一个数据库,在数据库之外包装了一些东西,帮用户做了备份恢复、HA、监控等,回到你提到的账号,root账号在MySQL里是权限最大的,也是风险最大的,为了保证RDS这些备份恢复、HA能7*24小时为你服务,所以就不能让你的账号去影响到这些组件,不然你一个误操作把实例关闭了怎么办,但是我承认目前RDS在控制台上提供的账号的确限制比较死,所以在RDS上你是无法获取root账号的,话说你要root权限做什么,你说的数据库创建在RDS控制台上提供功能了 ------------------------- 回46楼苗教授的帖子 客气了,也不知道能不能帮上你! 如果从外看RDS的使用的话,可以在RDS控制台上去管理RDS实例(用用就熟悉了),或者直接调用OPEN API来完成实例管理操作,然后针对RDS实例中数据管理,就可以登录DMS,有几个常用链接发你看看,有问题可以在这里继续探讨! DMS: http://idb.rds.aliyun.com/ DMS 功能介绍: http://docs.aliyun.com/#/rds/getting-started/database-manage&login-database OPEN API: http://docs.aliyun.com/?spm=5176.383715.9.5.1LioEO#/rds/open-api/abstract RDS控制台: https://rds.console.aliyun.com/console/index#/

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