zoukankan      html  css  js  c++  java
  • MySQL(一)序

    开坑原因

    本文的初心是想总结自己这几年对数据库的使用。希望现在回头看,可以总结并归纳一些在数据库使用上的惯例。

    存储工具如何出现

    P.S. 按出现时间顺序,并不表示优劣,在不同情境中,需使用不同的存储工具。

    无数据库(约公元1960)

    出现原因

    需要管理越来越多的数据

    例子

    层次模型和网络模型的文件系统:将数据存入树形结构的文件夹中。

    关系型数据库(约公元1970)

    出现原因

    无数据库时不方便表达关联关系,为了方便描述关系(one:one, one:more, more:more),引入了关系型数据库。

    例子

    以表结构为核心的关系模型,比如MySQL,Oracle等。

    非关系型数据库(约公元2000)

    出现原因

    由于性能要求以及不断新增的业务需求,导致传统的关系型数据库显得太了(比如,在一张上百万数据的表中,增加一个字段的代价非常大),急需一种轻量化的存储数据方式。

    例子

    • 文档型数据库(Document-Oriented)
    • 键值数据库(Key-Value Database)
    • 列式存储数据库(Column-Family)
    • 图数据库(Graph-oriented)

    为什么选择了MySQL

    1. MySQL免费。任何一个学生和个人开发者都可以任意使用。
    2. MySQL开源。一个资深程序员可以定制MySQL的源码。
    3. MySQL流行。LAMP的模式让MySQL搭上了互联网的便车。

    LAMP的含义

    所有软件全部是开源且免费的。方便个人、中小开发者无门槛开发动态网站。

    • Linux,操作系统
    • Apache,网页服务器
    • MySQL,数据库管理系统(或者数据库服务器)
    • PHP脚本语言

    概论

    设计流程

    1. 理解需求,并判断该需求是否有存储的需求
    2. 存储介质(文件、缓存、数据库)以及存储引擎的选择
    3. 表结构的设计和索引的构建
    4. 数据库的拓展(读写分离、分库、分表等)
    5. 数据的备份和还原
    6. 数据的导出

    各个流程讲解

    存储介质

    类型 优点 缺点 常见存储对象
    文件 空间大,效率比较高,加密方便 缺乏管理 图片、视频等占很多存储空间的类型
    缓存 效率极高 空间小,容易丢失 热点数据,有时效性的短、快、平的数据等
    数据库 管理方便,解决方案多,安全 效率一般,语法需要额外学习 用户账号密码、支付账单等

    表结构的设计和索引的构建

    表设计
    1. 分析需求,列出需要存储的项目,并按类型划分
    2. 确立主键,以及各个类型之间存在的联系(用于设置外键等)
    3. 分析查询列,添加索引
    4. 分析是否需要添加约束(默认值等)

    数据库的拓展

    在项目运行一段时间之后,最容易出现瓶颈的就是数据库。此时,可以考虑一些方案来降低数据库的压力。

    针对个别sql运行慢
    1. 首先考虑的是找到慢sql,可以通过日志来找到它。
    2. 通过explain关键字判断根源
    3. 通过改写sql或者添加索引来优化性能
    针对读多写少的数据库(优先考虑使用缓存)

    进行读写分离

    针对数据量大的数据库

    进行分表(水平切分和垂直切分)

    数据的备份和还原

    在项目有一些用户时,需要保证用户的数据不丢失,需要做好备份工作。可以使用 navicat 的备份

    数据的导出

    在某些时候,可能会遇到需要导出SQL的需求。可以使用navicat的转储SQL文件

    相关推荐

    在之前的一篇文章,大概描述了我心目中对新增字段的想法 琐碎的想法(一)代码“优雅”的含义

  • 相关阅读:
    胖子哥的大数据之路(12)-三张图告诉你大数据安全方案设计
    Building the Unstructured Data Warehouse: Architecture, Analysis, and Design
    Hadoop专业解决方案-第3章:MapReduce处理数据
    胖子哥的大数据之路(11)-我看Intel&&Cloudera的合作
    胖子哥的大数据之路(10)- 基于Hive构建数据仓库实例
    胖子哥的大数据之路(9)-数据仓库金融行业数据逻辑模型FS-LDM
    胖子哥的大数据之路(8)- 数据仓库命名规范
    胖子哥的大数据之路(7)- 传统企业切入核心or外围
    dos 打开计算机管理
    C# SQLite数据库
  • 原文地址:https://www.cnblogs.com/kwanwoo/p/14160461.html
Copyright © 2011-2022 走看看