
数据库初创公司PlanetScale的产品工程师Mike Coutermarsh在个人博客上分享了一篇博文,在他看来,基础设施工程师更喜欢MySQL,而产品工程师则更喜欢Postgres(PostgreSQL)数据库。Mike Coutermarsh表示,不同业务类型的工程师重视的方向不同。基础设施工程师通常更关心可靠性、故障情况、升级和数据永远不会丢失等功能。产品工程师虽然也关心这些问题,但他们更关心那些能使用户功能构建更容易的工具。MySQL数据库体积小、速度快、成本低、可靠性高。正好可以满足基础设施工程师 *** 作简单 、 容易备份、容易复制、故障转移、故障(系统)升级的需求。而且MySQL还具备以下特性:
·基于C和C++编写,并使用多种编译器进行测试,保证源代码的可移植性;
·支持AIX、FreeBSD、HP-UX、Linux、Mac OS、NovellNetware、OpenBSD、OS/2 Wrap、Solaris、Windows等多种 *** 作系统;
·为多种编程语言提供API支持,这些编程语言包括C、C++、Python、Java、Perl、PHP、Eiffel、Ruby和Tcl等;
·支持多线程,充分利用CPU资源;
·优化SQL查询算法,有效地提高查询速度;
·既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入其他的软件中;
·提供多语言支持,常见的编码如中文的GB 2312、BIG 5,日文的 Shift_JIS等都可以用作数据表名和数据列名;
·提供TCP/IP、ODBC和JDBC等多种数据库连接途径;
·提供用于管理、检查、优化数据库 *** 作的管理工具;
·支持大型数据库,可以处理拥有上千万条记录的大型数据库,支持多种存储引擎。
Postgres其实跟MySQL数据库很像,都是使用SQL语言来执行资料的查询。这些资料通过外键联系在一起,以一系列表格的形式存在。但相比MySQL,Postgres的优势在于其可编程性,即对于使用数据库资料的实际应用能力更强。如果一个产品工程师更喜欢Postgres,通常是因为其可编程性,也就是postgis、jsonb/hstore等东西。这可以让他们在应用中使用一些能快捷建立某些东西。
希望这可以帮助你理解为什么你经常能看到许多大厂选择使用MySQL。
mysql-server 与 mysql-client是DBMS的两个面向不同 *** 作对象的工具。server是DBMS面向物理层次,包含存储数据的一系列机制、处理方法的集成;client是DBMS面向用户,提供一系列工具为用户所用,这些工具包括通常写的sql在内都要通过server的编译才能 *** 作物理数据。 客户--client--server物理数据。服务器--mysql-server是服务端。
前者是mysql核心程序,生成管理数据库实例,数据库实例任务调度线程之类,并提供相关接口供不同客户端调用。
后者是 *** 作数据库实例的工具 *** 作mysql实例的客户端有很多,mysql-client只是其中一种,包括mysql,mysqldump,mysqlslap,这些访问,备份,压力测试的工具mysql-server是服务端。
程序员是从事程序开发、程序维护的专业人员。一般将程序员分为程序设计人员和程序编码人员,但两者的界限并不非常清楚,特别是在中国。软件从业人员分为初级程序员、中级程序员、高级程序员(现为软件设计师)、系统分析员,系统架构师,测试工程师六大类。
程序员是人才很容易被淘汰,很容易落伍的职业,因为一种技术可能仅仅在三两年内具有领先性,程序员如果想安身立命,就必须不断跟进新的技术,学习新的技能。善于学习,对于任何职业而言,都是前进所必需的动力,对于程序员,这种要求就更加高了。
但是学习也要找对目标,善于总结,也是学习能力的一种体现,每次完成一个研发任务,完成一段代码,都应当有目的的跟踪该程序的应用状况和用户反馈,随时总结,找到自己的不足,这样逐步提高,一个程序员才可能成长起来。
具备以上全部素质的人,应当说是够格的程序员了,请注意以上的各种素质都不是由IQ决定的,也不是大学某些课本里可以学习到的,需要的仅仅是程序员对自己工作的认识,是一种意识上的问题。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)