mysqli,甚至是pdo。mysql好像在5.4以上的版本要废弃了,况且pdo在防注入漏洞比mysql好。
让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:域名注册、网页空间、营销软件、网站建设、兴国网站维护、网站推广。
mariadb与mysql都属于同一类数据库管理系统。但是mariadb与mysql在使用范围和使用目的上都有所不同,两者的主要功能都是为了通过开源社区在维护中,从而获得GPL授权许可。从关系上来看,mariadb是属于数据库管理系统的开发和升级版本,它仅仅代表MySQL的一个分支。
1. mariadb与mysql的开发目的不同
mariadb是由MySQL的创始人主导开发,在他家公司MySQL卖给sun之后,又被甲骨文收购,这也就意味着MySQL的所有权,现在属于甲骨文网站。因而不得不另行开发mariadb想要通过功能完善,从而实现完全替代MySQL的产品,所以在使用的范围上两者是完全兼容的,并且前者的使用范围更广,他可以实行包括API和命令行,最终想要达到的目的是完全兼容MySQL。蒋丹来说,前者只是后者的一个替代品和升级产品,在开发过程将misqil的弊端进行兼容,从而实现整体SQL的升级。
2. mariadb与mysql的适用范围
Mariadb的客户端包括Dbedit和navi act系列windows,macos等数据库中的专有应用程序,以及在heidisql中,它能够支持mariadb的所有版本。通俗易懂的来讲,mariadb实现了对MySQL的完全兼容之后,还增添了许多新的功能,从而来让本地的非阻塞操作得到支持以及推动了进度报告。相对来说,mariadb的使用范围要大于MySQL,但是由于两者都在不断更新,最新的MySQL 5.4 innodb的性能也在不断提升,这也就意味着所有的MySQL的连接器应用程序同样可以在mariadb的操控工作,并且实现一个更加封闭的软件项目。
为给那些只为获得答案的看众节省时间。提前下个结论,
mysql目前暂不具备并行运行某一查询的能力
。相信很多人有一个误解,似乎MySQL 5.4对某一查询带来的性能改进是非常巨大的。事实上,这需要针对具体应用来讲,如果追求某个具体查询的响应时间,5.4 将比5.1或之前的版本差。简单的来说,5.4提高的是并发量,而不是减少单条语句的执行时间。
初次看到这个话题的人要注意几个概念,并行和多线程不是同一个概念。“同时进行”的技术分很多类,有
查询间的并行,
查询内的并行和操作内的并行
。举个生活中的例子,
如果你与其他人合租房子的话,早上起来后,多个人可以同时刷牙,洗脸和做饭,大家各忙各的(虽然女房客可能会给厕所加上mutex而其他人只能在原地spin)。单单这套房子来说,它在较短的时间内解决了好几个人的早上洗漱问题。这就是查询间并发了。
早上诸多行动中,以刷牙、做饭、吃饭这三个动作为例,我们通常的做法是把微波炉转上,然后刷牙,刷牙结束后,早饭也弄好了(至少我是这么做的),这样我们达到了查询内的并行。
再细化下去,现在加一个动作:整理电脑包,按照上一种方式我们可以按这样的顺序做事情:做饭刷牙 02 02 02—》 02 02 02吃饭 02 02 02 02 — -》02 整理电脑包
如果你有两只手的话,我们可以用一只手刷牙,另外一只手整理电脑包,这样进一步缩短你的运行时间,这样你就做到了操作内的并行。
总结起来:第一种情况整体吞吐量很大,但个人的准备时间可能更长了。第二种情况,个人的处理时间减少了。 第三种情况,个人的处理时间进一步减少。
有兴趣的人可以在
database system concepts
这本书中了解相关概念。查询间的并行对于数据库管理软件来说是再正常不过的功能,所以下面我们将直接跳过这类“同时进行”。从理论上讲,数据库的多个模块:IO、SQL解析和SQL执行等都可以达到并行执行的目的。
通过将关系划分到多个磁盘来减少从磁盘检索关系所需的时间,从而使得数据库IO可以并行执行。另外在一个查询中的多个联接操作和排序操作也可并行发生。对等值联接和自然联接, 可以将两个输入关系划分到多个处理器上, 各处理器在本地计算联接.
当然以上讨论的一切一切都基于CPU是多核的。
但是目前我个人不支持mysql并行化,这也符合很大一部分mysql开发人员的意见。理由:
就mysql目前的应用来看,使用者更在意mysql数据库的吞吐量,而不是效应速度(当然了,响应速度也是很重要的)。mysql目前的简单架构replication可大幅提高数据库端的吞吐量。
目前现存的其他开源技术亦能满足并行查询的需求如hadoop、map reduce。
最后,我们还可以利用mysql proxy来达到并行的目的。查询在mysql proxy中被划分成多个部分,各个部分可在不同的mysql服务器上查询获得数据,再由mysql proxy合并返回给读者。
1. sudo apt-get install mysql-server
2. apt-get isntall mysql-client
3. sudo apt-get install libmysqlclient-dev
安装过程中会提示设置密码什么的,注意设置了不要忘了,安装完成之后可以使用如下命令来检查是否安装成功