VMware学习
网络适配器:
- 进行数据串行传输和并行传输的转换;
- 对数据进行缓存,对接收速率进行匹配;
- 对接收的数据进行差错检测;
- 跟主机当中的存储器、CPU等部件进行协调;
- 实现以太网协议,如数据的封装、发送、地址的检查、接收、有效判断、校验等等。
网络适配器:
导入大量带有时间格式的数据load data local infile 'csv文件本地路径' into table 表名称
-- 每个字段值之间由'\t'隔开
fields terminated by '\t'
-- 如果字段值由双引号包裹,则添加下面一行
optionally enclosed by '"'
-- 每行之间的换行符为'\n'
lines terminated by '\n'
-- 如果第一行为字段名,则可以忽略
ignore 1 lines
-- 以下为表中所有字段值,按表结构顺序填写
(id, @gmt_create, ...)
-- 转换日期字符串为MySQL日期类型
set gmt_create=STR_TO_DATE(@gmt_create, 'csv中日期格式')
MySQL日期格式参考: 日期格式化
在传统的单体服务中,我们经常会遇到多线程对于单一资源的抢占导致的线程安全问题以及对数据库数据操作的一致性问题,如果是在单体系统中,我们可以很方便的使用编程语言提供的锁以及数据库事务来解决这些问题。
一旦单体系统转为分布式架构,那么本地事务和线程锁就无法满足跨进程的锁效果;分布式锁则是用于进程间同步访问共享资源的一种方式,通过全局共享来实现全局锁的效果,保证数据的一致性。
总的来说,在分布式系统中,当我们期望一个操作(一个请求、一个方法、一个数据库操作…)在整个系统中同一时间只能有一个线程执行,那我们就需要用到分布式锁; 抽象来看就是两个场景:
分布式锁应该具备的特性:
本文主要讲述如何通过 explain 命令获取 select 语句的执行计划,通过 explain 我们可以知道以下信息:表的读取顺序,数据读取操作的类型,哪些索引可以使用,哪些索引实际使用了,表之间的引用,每张表有多少行被优化器查询等信息。
下面是使用 explain 的例子:
在 select 语句之前增加 explain 关键字,MySQL 会在查询上设置一个标记,执行查询时,会返回执行计划的信息,而不是执行这条SQL(如果 from 中包含子查询,仍会执行该子查询,将结果放入临时表中)。mysql> explain select * from actor;
+----+-------------+-------+------+---------------+------+---------+------+------+-------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+-------+------+---------------+------+---------+------+------+-------+
| 1 | SIMPLE | actor | ALL | NULL | NULL | NULL | NULL | 2 | NULL |
+----+-------------+-------+------+---------------+------+---------+------+------+-------+
在查询中的每个表会输出一行,如果有两个表通过 join 连接查询,那么会输出两行。表的意义相当广泛:可以是子查询、一个 union 结果等。