仲夏叶 | Stornado

生命就是用求知的欲望燃烧自己

MySQL 8.0 Supported Storage Engines

  • InnoDB: The default storage engine in MySQL 8.0. InnoDB is a transaction-safe (ACID compliant) storage engine for MySQL that has commit, rollback, and crash-recovery capabilities to protect user data. InnoDB row-level locking (without escalation to coarser granularity locks) and Oracle-style consistent nonlocking reads increase multi-user concurrency and performance. InnoDB stores user data in clustered indexes to reduce I/O for common queries based on primary keys. To maintain data integrity, InnoDB also supports FOREIGN KEY referential-integrity constraints.
  • MyISAM: These tables have a small footprint. Table-level locking limits the performance in read/write workloads, so it is often used in read-only or read-mostly workloads in Web and data warehousing configurations.
  • Memory: Stores all data in RAM, for fast access in environments that require quick lookups of non-critical data. This engine was formerly known as the HEAP engine. Its use cases are decreasing; InnoDB with its buffer pool memory area provides a general-purpose and durable way to keep most or all data in memory, and NDBCLUSTER provides fast key-value lookups for huge distributed data sets.
  • CSV: Its tables are really text files with comma-separated values. CSV tables let you import or dump data in CSV format, to exchange data with scripts and applications that read and write that same format. Because CSV tables are not indexed, you typically keep the data in InnoDB tables during normal operation, and only use CSV tables during the import or export stage.
  • Archive: These compact, unindexed tables are intended for storing and retrieving large amounts of seldom-referenced historical, archived, or security audit information.
  • Blackhole: The Blackhole storage engine accepts but does not store data, similar to the Unix /dev/null device. Queries always return an empty set. These tables can be used in replication configurations where DML statements are sent to slave servers, but the master server does not keep its own copy of the data.
  • NDB (also known as NDBCLUSTER): This clustered database engine is particularly suited for applications that require the highest possible degree of uptime and availability.
  • Merge: Enables a MySQL DBA or developer to logically group a series of identical MyISAM tables and reference them as one object. Good for VLDB environments such as data warehousing.
  • Federated: Offers the ability to link separate MySQL servers to create one logical database from many physical servers. Very good for distributed or data mart environments.
  • Example: This engine serves as an example in the MySQL source code that illustrates how to begin writing new storage engines. It is primarily of interest to developers. The storage engine is a “stub” that does nothing. You can create tables with this engine, but no data can be stored in them or retrieved from them.
阅读全文 »

Code Meaning Example
%a Weekday as locale’s abbreviated name. Mon
%A Weekday as locale’s full name. Monday
%w Weekday as a decimal number, where 0 is Sunday and 6 is Saturday. 1
%d Day of the month as a zero-padded decimal number. 30
%-d Day of the month as a decimal number. (Platform specific) 30
%b Month as locale’s abbreviated name. Sep
%B Month as locale’s full name. September
%m Month as a zero-padded decimal number. 09
%-m Month as a decimal number. (Platform specific) 9
%y Year without century as a zero-padded decimal number. 13
%Y Year with century as a decimal number. 2013
%H Hour (24-hour clock) as a zero-padded decimal number. 07
%-H Hour (24-hour clock) as a decimal number. (Platform specific) 7
%I Hour (12-hour clock) as a zero-padded decimal number. 07
%-I Hour (12-hour clock) as a decimal number. (Platform specific) 7
%p Locale’s equivalent of either AM or PM. AM
%M Minute as a zero-padded decimal number. 06
%-M Minute as a decimal number. (Platform specific) 6
%S Second as a zero-padded decimal number. 05
%-S Second as a decimal number. (Platform specific) 5
%f Microsecond as a decimal number, zero-padded on the left. 000000
%z UTC offset in the form +HHMM or -HHMM (empty string if the the object is naive).
%Z Time zone name (empty string if the object is naive).
%j Day of the year as a zero-padded decimal number. 273
%-j Day of the year as a decimal number. (Platform specific) 273
%U Week number of the year (Sunday as the first day of the week) as a zero padded decimal number. All days in a new year preceding the first Sunday are considered to be in week 0. 39
%W Week number of the year (Monday as the first day of the week) as a decimal number. All days in a new year preceding the first Monday are considered to be in week 0. 39
%c Locale’s appropriate date and time representation. Mon Sep 30 07:06:05 2013
%x Locale’s appropriate date representation. 09/30/13
%X Locale’s appropriate time representation. 07:06:05
%% A literal '%' character. %

标准号:GB/T 15532-2008 计算机软件测试规范

关联标准

GB/T 8566 信息技术 软件生存周期过程

GB/T 9386 计算机软件测试文档编制规范

GB/T 11457 信息技术 软件工程术语

GB/T 16260.1 软件工程 产品质量 第一部分:质量模型

GB/T 18492 信息技术 系统及软件完整性级别

GB/T 20158 信息技术 软件生存周期过程 配置管理

测试目的

计算机软件的测试目的是:

  1. 验证软件是否满足软件开发合同或项目开发计划、系统/子系统设计文档、软件需求规格说明、软件设计说明和软件产品说明等规定的软件质量要求;
  2. 通过测试,发现软件缺陷;
  3. 为软件产品的质量测量和评价提供依据。

测试类别

根据 GB/T 8566 的要求,本标准对如下测试类别做详细描述:

  1. 单元测试;
  2. 集成测试;
  3. 配置项测试(也称软件合格性测试或确认测试);
  4. 系统测试;
  5. 验收测试。

可根据软件的模型、类型、完整性级别选择执行测试类型。

回归测试可出现在上述每个测试类别中,并贯穿于整个软件生存周期,故单独分类进行描述。

测试过程

概述

软件测试过程一般包括四项活动,按顺序分别是:测试侧或、测试设计、测试执行、测试总结。

测试策划

测试策划主要是进行测试需求分析。即确定需要测试的内容或质量特性;确定测试的充分性要求;踢出测试的基本方法;确定测试的资源和技术需求;进行风险分析与评估;制定测试计划(含资源计划和进度计划)。有关测试计划的内容和要求见 GB/T 9386 。

测试设计

依据测试需求,分析并选用已有的测试用例或设计新的测试用例;获取并验证测试数据;根据测试资源、风险等约束条件,确定测试用例执行顺序;获取测试资源,开发测试软件;建立并校准测试环境;进行测试就绪评审,主要评审测试计划的合理性和测试用例的正确性、有效性和覆盖充分性,评审测试组织、环境和设备工具是否齐备并符合要求。在进入下一阶段工作之前,应通过测试就绪评审。

阅读全文 »

议题驱动

《麦肯锡教我的思考武器——从逻辑思考到真正解决问题》

思考,不要用蛮力!工作,不只靠体力!

从议题出发,创造有价值的工作

  • 解决问题之前,要先查明问题
  • 提升答案的质量并不够,提升议题的质量更重要
  • 不是知道越多越聪明,而是知道太多会变笨
  • 与其快速做完每一件事,不如删减要做的事
  • 与其计较数字多寡,不如计较到底有没有答案
阅读全文 »

LaTeX 符号备忘录

Math Mode Accents

LaTex Symbols
\acute{a} \(\acute{a}\)
\bar{a} \(\bar{a}\)
\breve{a} \(\breve{a}\)
\check{a} \(\check{a}\)
\ddot{a} \(\ddot{a}\)
\dot{a} \(\dot{a}\)
\grave{a} \(\grave{a}\)
\hat{a} \(\hat{a}\)
\mathring{a} \(\mathring{a}\)
\tilde{a} \(\tilde{a}\)
\vec{a} \(\vec{a}\)
\widehat{AAA} \(\widehat{AAA}\)
\widetilde{AAA} \(\widetilde{AAA}\)
阅读全文 »

准备工作

  • 一台或多台运行着下列系统的机器:
    • CentOS 7
    • RHEL 7
  • 每台机器 2 GB 或更多的 RAM (如果少于这个数字将会影响您应用的运行内存)
  • 2 CPU 核心或更多
  • 集群中的所有机器的网络彼此均能相互连接(公网和内网都可以)
  • 节点之中不可以有重复的主机名,MAC 地址,product_uuid。更多详细信息请参见这里
  • 开启主机上的一些特定端口. 更多详细信息请参见这里
  • 禁用 Swap 交换分区。为了保证 kubelet 正确运行,您 必须 禁用交换分区。
阅读全文 »

简介

Pipenv,它的项目简介为 Python Development Workflow for Humans,是 Python 著名的 requests 库作者 kennethreitz 写的一个包管理工具,它可以为我们的项目自动创建和管理虚拟环境并非常方便地管理 Python 包。

Pipenv我们可以简单理解为 pip 和 virtualenv 的集合体,它可以为我们的项目自动创建和管理一个虚拟环境。virtualenv 在使用时我们需要手动创建一个虚拟环境然后激活,Pipenv 会自动创建。

总的来说,Pipenv可以解决如下问题:

  • 我们不需要再手动创建虚拟环境,Pipenv会自动为我们创建,它会在某个特定的位置创建一个 virtualenv 环境,然后调用 pipenv shell 命令切换到虚拟环境。
  • 使用 requirements.txt 可能会导致一些问题,所以 Pipenv使用 Pipfile 和 Pipfile.lock 来替代之,而且 Pipfile 如果不存在的话会自动创建,而且在安装、升级、移除依赖包的时候会自动更新 Pipfile 和 Pipfile.lock 文件。
  • 广泛使用 Hash 校验,保证安全性。
  • 可以更清晰地查看 Python 包及其关系,调用 pipenv graph 即可呈现,结果简单明了。
  • 可通过自动加载 .env 读取环境变量,简化开发流程。
阅读全文 »