docker pull astonika/hadoop
新做的Ubuntu下的Hadoop镜像下拉使用。 Astonika的邮箱 [email protected] [email protected]。
有时候MySQL数据库cpu占用或io会飙升超过100%,一般原因大概是有查询或大批量的插入导致的。
解决方法:这时候用列出所有进程 show processlist,观察所有进程 ,多秒没有状态变化的(干掉),然后查看超时日志或者错误日志。
超过100台MySQL时用puppet 安装配置管理集群啊,其他dsh
用lepus做数据库监控,查询慢日志,另外还有zabbix可用。
volatile关键字 是JVM线程栈缓存失效穿透情况。
Docker 虚时问题 容器时间不对 差8个小时 是因为容器用的是东一区时间
用
RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone
或 不在编写Dockfile时 已在容器中时用 cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 复制时区配置解决。
SpringCloud服务注册与发现、消费、断路、路由、高可用分布式配置、消息总线、服务链路追踪等
Java锁类型:内置锁(Instrinsic Lock)
Sql优化各种方法:
explain出来的各种item的意义;
select_type
表示查询中每个select子句的类型
type
表示MySQL在表中找到所需行的方式,又称“访问类型”
possible_keys
指出MySQL能使用哪个索引在表中找到行,查询涉及到的字段上若存在索引,则该索引将被列出,但不一定被查询使用
key
显示MySQL在查询中实际使用的索引,若没有使用索引,显示为NULL
key_len
表示索引中使用的字节数,可通过该列计算查询中使用的索引的长度
ref
表示上述表的连接匹配条件,即哪些列或常量被用于查找索引列上的值
Extra
包含不适合在其他列中显示但十分重要的额外信息
(2)、profile的意义以及使用场景;
查询到 SQL 会执行多少时间, 并看出 CPU/Memory 使用量, 执行过程中 Systemlock, Table lock 花多少时间等等。
MySQL数据库大数据量,高增加改动量优化规则:
a. 设计良好的数据库结构,允许部分数据冗余,尽量避免join查询,提高效率。
b. 选择合适的表字段数据类型和存储引擎,适当的添加索引。
c. mysql库主从读写分离。
d. 找规律分表,减少单表中的数据量提高查询速度。
e。添加缓存机制,比如memcached,apc等。
f. 不经常改动的页面,生成静态页面。
g. 书写高效率的SQL。比如 SELECT * FROM TABEL 改为 SELECT field_1, field_2, field_3 FROM TABLE.
锁的优化策略
1. 读写分离
2. 分段加锁
3. 减少锁持有的时间
4. 多个线程尽量以相同的顺序去获取资源
不能将锁的粒度过于细化,不然可能会出现线程的加锁和释放次数过多,反而效率不如一次加一把大锁。
索引的底层实现原理和优化
B+树,经过优化的B+树
主要是在所有的叶子结点中增加了指向下一个叶子节点的指针,因此InnoDB建议为大部分表使用默认自增的主键作为主索引。
还有什么情况下设置了索引但无法使用
1.以“%”开头的LIKE语句,模糊匹配
2. OR语句前后没有同时使用索引
3. 数据类型出现隐式转化(如varchar不加单引号的话可能会自动转换为int型)
实践中优化MySQL最佳优化顺序:
1.SQL语句及索引的优化
2. 数据库表结构的优化
3.系统配置的优化
4.硬件的优化
优化数据库的方法
mysql中,索引,主键,唯一索引,联合索引的区别,对数据库的性能的影响(读写两方面):
索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分),它们包含着对数据表里所有记录的引用指针。
普通索引(由关键字KEY或INDEX定义的索引)的唯一任务是加快对数据的访问速度。
普通索引允许被索引的数据列包含重复的值。如果能确定某个数据列将只包含彼此各不相同的值,在为这个数据列创建索引的时候就应该用关键字UNIQUE把它定义为一个唯一索引。也就是说,唯一索引可以保证数据记录的唯一性。
主键,是一种特殊的唯一索引,在一张表中只能定义一个主键索引,主键用于唯一标识一条记录,使用关键字 PRIMARY KEY 来创建。
索引可以覆盖多个数据列,如像INDEX(columnA, columnB)索引,这就是联合索引。
索引可以极大的提高数据的查询速度,但是会降低插入、删除、更新表的速度,因为在执行这些写操作时,还要操作索引文件。