目录

Life in Flow

知不知,尚矣;不知知,病矣。
不知不知,殆矣。

存档: 2019 年 07 月 (26)

sql语句优化思路

慢查询日志开启与问题定位 性能详情 性能线程的详细解释官方文档链接 语句优化的原则 尽量避免使用 select *from ,尽量精确到想要的结果字段。 尽量避免条件使用 or。 记得加上 limit 限制行数,避免数据量过大消耗性能。 使用模糊查询时,% 放在前面是会使索引失效。 要小心条件字段类型的转换。where 后面的条件值用尽量用' '引起来。

索引

索引   索引是一个单独的,存储在磁盘中上的数据库结构,它们包含着对数据表里的所有记录的引用指针。使用索引可以快速的找出在某列或多列中有特定值的行。 索引的优点   通过创建唯一索引,来保证数据库表中的每一行数据的唯一性。 可以加快数据的检索速度。 可以保证表数据的完整性与准确性 索引的缺点   索引需要占用物理空间。 对表中的数据进行改动时,索引也需要跟着动态维护,降低了数据的维护速度。 索引的常见类型 index:普通索引 unique:唯一索引 primary key:主键索引 foreign key:外键索引 fulltext: 全文索引 组合索引 准备数据 # 准备shell脚本 [root@localhost ~]# vim /test/test.sh #!/bin/bash echo "请输入字段servnumber的值:" read serber echo "请输入创建sql语句的数量:" read number # char=`head /dev/urandom | tr -dc 0-9 | head -c 11` for (( i=0;i<$num....

存储引擎

数据库存储引擎  数据库存储引擎是数据库底层软件组件,不同的存储引擎提供不同的存储机制,索引技巧,锁定水平等功能,使用不同的数据库引擎,可以获得特定的功能,数据库存储引擎是基于表的。 数据库引擎相关操作 # 查看当前数据库支持的引擎类型 mysql> show engines; +--------------------+---------+----------------------------------------------------------------+--------------+------+------------+ | Engine | Support | Comment | Transactions | XA | Savepoints | +--------------------+---------+----------------------------------------------------------------+--------------+------+------------+ | FEDERATED | NO | Federate....

事务,视图,触发器,存储过程

事务  数据库事务通常指对数据库进行读或写的一个操作过程。有两个目的,第一个是为数据库操作提供了一个从失败中恢复到正常状态的方法,同时提供了数据库即使在异常状态下仍能保持一致性的方法;第二个是当多个应用程序在并发访问数据库时,可以在这些应用程序之间提供一个隔离方法,以防止彼此的操作互相干扰。 事务的 ACID 特性  使用事务表的引擎要为 innodb 引擎。MyIsam 不支持事务。 原子性(Atomicity):事务必须是原子工作单元,一个事务中的所有语句,应该做到:要么全做,要么一个都不做; 一致性(Consistency):让数据保持逻辑上的“合理性”,比如:小明给小红打 10000 块钱,既要让小明的账户减少 10000,又要让小红的账户上增加 10000 块钱; 隔离性(Isolation):如果多个事务同时并发执行,但每个事务就像各自独立执行一样。 持久性(Durability):一个事务执行成功,则对数据来说应该是一个明确的硬盘数据更改(而不仅仅是内存中的变化)。 了解事务相关操作 # 事务的开启 begin; start transaction; # 事务的提交 ....

DDL、DML、DCL、DQL

操作语句分类 DDL 数据定义语言 (Data Definition Language) 例如:建库,建表 DML 数据操纵语言(Data Manipulation Language) 例如:对表中的数据进行增删改操作 DQL 数据查询语言(Data Query Language) 例如:对数据进行查询 DCL 数据控制语言(Data Control Language) 例如:对用户的权限进行设置 常见表常用数据类型  数据类型是指列、存储过程参数、表达式和局部变量的数据特征,它决定了数据的存储格式,代表了不同的信息类型。有一些数据是要存储为数字的,数字当中有些是要存储为整数、小数、日期型等... <1>整数型 类型 大小 范围(有符号) 范围(无符号unsigned) 用途 TINYINT 1 字节 (-128,127) (0,255) 小整数值 SMALLINT 2 字节 (-32768,32767) (0,65535) 大整数值 MEDIUMINT 3 字节 (-8388608,8388607) (0,16777215) 大整数值 INT 4 字节 (-21474....

Centos7 Features

Hostname 临时修改(需要开启新的会话) [root@localhost ~]hostname test123 永久修改 [root@localhost ~]# vim /etc/hostname localhost.localdomain OS Directory Detail / #根目录,起点。 etc # 系统和应用的配置文件 home #普通用户的家目录 bin #可执行二进制文件 (系统指令) bin -> /usr/bin sbin #可执行二进制文件(超级用户指令)sbin -> /usr/sbin usr # 可执行二进制文件(用户程序) boot #系统引导目录(存放系统引导文件) lib # 系统库文件 tmp #临时文件(此自带定时清理机制,不适合存放需要长期持久化的数据) var #系统日志(/var/log)、帮助文档、比较杂乱。 proc #保存进程的动态信息(内存使用率、CPU使用率等…) sys #/proc类似,是一个虚拟的文件系统,主要记录与系统核心相关的信息(系统当前已经载入的模块信息等,这个目录实际不占磁盘容量)。 dev....

微服务核心概念梳理

软件架构的进化  软件架构是在软件的内部,经过综合各种因素的考量、权衡,选择特定的技术,将系统划分成不同的部分并使这些部分相互分工,彼此写作,为用户提高需要的价值。 因素考量 业务需求 技术栈 成本 可扩展性 组织架构(分工) 可维护性 架构进化史   一层架构 -> MVC -> Dubbo 单体架构  功能、业务集中在一个发布包里,部署运行在同一个进程中。 易于开发 易于测试 易于部署 易于水平伸缩(新建服务器、配置好环境、复制软件包)  致命的硬伤: 代码膨胀、难以维护。(分析、定位、修复、成本高) 构建、部署成本大 新人上手困难 创新困难 可扩展性差 微服务间如何通讯 通讯模式角度考虑 xxx一对一一对多 同步请求响应模式,最常见—— 异步通知/请求异步响应发布订阅/发布异步响应 从通讯协议角度考虑 REST API RPC(dubbo、dubbox、motan、grpc、thrift) MQ (发布订阅模式) 如何选择RPC框架 I/O、线程调度模型(NIO、BIO、长连接、短连接、单线程、多线程、线程调度算法的性能如何) 序列化与反....