首页 存档 技术 查看内容

正解:数据库的基本使用

2018-3-30 13:00 |来自: 互联网 325 0

摘要: 在本公众号后台回复“情书”获取源代码,复制粘贴到你自己创建的文本文件即可使用,定制你的情书,送给你的女生你的她!(如何制作请参考今日第2篇文章《明天女生节啦,送你一段表白代码,花3分钟亲自给她做个弹窗情 ...

在本公众号后台回复“情书”获取源代码,复制粘贴到你自己创建的文本文件即可使用,定制你的情书,送给你的女生你的她!(如何制作请参考今日第2篇文章明天女生节啦,送你一段表白代码,花3分钟亲自给她做个弹窗情书!》

此文我会对数据库做一个简要的介绍,然后我会从三个方面来讲解如何使用数据库,下面我们正式开始。

数据库的重要性

众所周知,数据库是互联网公司最为宝贵的资源,我们可以从两个角度来看它的重要性:

从用户角度看,它保存了用户的数据,任何数据的丢失都会影响产品体验,更为严重者,数据库的使用问题还会导致用户的财产损失,例如某个用户进行了两笔支付操作,但在数据库中只生成了一笔订单,此为常见的数据一致性问题。

从公司角度,数据库是公司的财富,也是公司间竞争的壁垒,拥有更大数据规模的公司,相应的也会更有优势,尤其是在大数据时代,更多的数据意味着有更多的可能性,以及更好的用户体验,同时也更难被超越,例如国内的腾讯、阿里巴巴、百度,及国外的Google、Facebook等公司就是典型的例子。

数据库领域

所以说任何公司或者开发者,都要用好数据库(我们这里说的数据库指的是关系型数据库),由于数据库足够复杂,在计算机领域,它已经发展成了一个独立的方向。而作为一个开发者,能不能用好数据库,也成了衡量他是否有价值的指标,在招聘中,我经常会问面试者一个关于数据库的问题:

对于MySQL,你认为它的瓶颈在哪里?

这个问题看似简单,但得到的答案可以用千差万别来形容,答案大致分这么几种:

1. 数据库的容量是它的瓶颈2. 大量的读或写操作是它的瓶颈3. 复杂的SQL语句是它的瓶颈,例如大量没有经过优化的SQL语句4. 索引越来越大是它瓶颈

这个问题看似是一个数据库问题,实际上它还是一个操作系统问题,因为数据库和操作系统一样,也要使用内存,磁盘,网络,同时还要对缓存进行高效的利用和管理,并且它比操作系统还要擅长于存储和管理数据。说到这里,我倒要反过来问你一个问题:

如果你的电脑变慢了,你会怎么做?

大多数人第一时间会想到加条内存,或换个SSD硬盘,这个问题很少有人会回答错误,那么为什么我们回答同样的问题,只是把操作系统换成数据库,就回答不上来了呢?

所以,能不能举一反三,及清楚的认识操作系统和数据库的组成原理,直接反映了这个人的基本功是否扎实,以及他以后能不能写出高质量的代码。

数据库的应用

在数据库的应用方面,一般又分为两种角色:

  • 一种是应用开发者,在公司里一般被称为“服务器工程师”或“web开发工程师”

  • 一种是数据库管理者,在公司一般被称为“DBA”(DataBase Administrator)或“运维”

这两种角色的视角和侧重点是不一样的,前者一般侧重于在应用程序中使用数据库,他们的日常操作即我们常说的CRUD操作(分别是create、read、update和delete);而后者则更侧重于数据库的维护和管理,例如安全性、扩展性、性能、及易用性等。这次的分享主要会围绕第一个角色展开。

虽然一般公司常会把这两种角色分配在不同的岗位,但任何一种角色最好能拥有另外一种角色的思维,这样才能更高效的使用数据库,增强组织间的协作,从而提升整体的开发和维护效率。

下面会以Python语言和MySQL数据库为例,从数据库的应用方面讲一下在工作中,如何更好的使用数据库。

使用Python的原因是因为Python语言比较简洁,在业内使用非常广泛,且它的数据库方面的资源比较完善;而MySQL基本是最为常用的数据库。

在我看来,数据库的使用方面分为三个层次

  1. 数据库的基本使用

  2. 利用面向对象的思维使用数据库

  3. 在项目中应用分布式数据库

在我经历的大多数项目中,我发现很多项目仅仅停留在第一个层次,尤其是,小的团队对数据库的使用都比较初级,他们可能更关注数据库的设计三范式、数据库的基本操作,及设计出来的数据库能否满足应用的需求,对于应用的可维护性和扩展性可能会关注的比较少。

但我认为在数据库的使用方面,起码要从第二个层次开始(具体原因后面会详细介绍),即小团队、小项目使用面向对象的思维使用数据库,等到项目变大了,再由第二个层次扩展到第三个层次。

数据库的环境搭建

下面我们进入数据库的基本使用,不过在此之前,我们首先需要搭建开发环境,我当前的演示环境是macOS,对于其他操作系统,我将提供以下页面供大家参考:

  • MySQL的安装页面

  • pip的安装说明文档,多嗦一句,你最好配置一个pip的国内镜像(例如豆瓣镜像清华大学镜像),这样你在安装软件时速度会快很多。

  • 对于macOS环境,你还需要配置homebrew的镜像

下面我来演示一下操作步骤

# 1. 安装pip$ wget https://bootstrap.pypa.io/get-pip.py$ python ./get-pip.py# 2. 配置pip源$ echo "[global]"

声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

相关分类

返回顶部