最近工作时遇到一个挺奇怪的问题,在Eclipse中启动工程时总是会报下面的错误,导致项目启动失败:
月度归档:2016年01月
使用MERGE存储引擎实现MySQL的分表机制
当一张表的数据量达到上百万条记录时,单台MySQL数据库采用传统的单表方式就很有可能无法满足业务的性能需求。解决这种性能问题的技术方案很多,包括分表、分库或搭建MySQL集群,每种技术方案又分别有若干种实现方式。本文将通过实例描述如何使用MERGE
存储引擎实现MySQL的分表机制,不会涉及其他的技术方案或实现方式。
一、建立数据库
如何查看MySQL中的数据大小?
以下方法可用于查看MySQL中各个级别数据的大小:
1. 查看MySQL中所有数据的大小
-- 使用信息数据库
use information_schema;
-- 查看所有数据的总大小
select concat(round(sum(DATA_LENGTH/1024/1024),2),'MB') as data from TABLES;
2. 查看MySQL中指定数据库的大小
-- 使用信息数据库
use information_schema;
-- 查看指定数据库的大小
select concat(round(sum(DATA_LENGTH/1024/1024),2),'MB') as data from TABLES where table_schema=<schema_name>;
3. 查看MySQL中指定表的大小
-- 使用信息数据库
use information_schema;
-- 查看指定表的大小
select concat(round(sum(DATA_LENGTH/1024/1024),2),'MB') as data from TABLES where table_schema=<schema_name> and table_name=<table_name>;
注意
【翻译】EXPLAIN语句的语法
原文链接:http://dev.mysql.com/doc/refman/5.7/en/explain.html
一、语法
1. 语法格式-1
{EXPLAIN | DESCRIBE | DESC}
tbl_name [col_name | wild]
2. 语法格式-2
{EXPLAIN | DESCRIBE | DESC}
[explain_type]
{explainable_stmt | FOR CONNECTION connection_id}
3. 选项取值
【翻译】使用EXPLAIN优化MySQL查询
原文链接:http://dev.mysql.com/doc/refman/5.7/en/using-explain.html
EXPLAIN
语句可以用于获取MySQL如何执行一条语句的相关信息:
MySQL的Query Cache详解
一、原理概述
Query Cache就是把“查询返回的结果”缓存起来。但是,仅仅只是缓存“查询返回的结果”,其实是不准确的,Query Cache还会缓存查询语句,在内存中将“查询语句”和“查询返回的结果”映射起来。
当MySQL接收到一条SELECT
类型的查询语句时,MySQL会对这条查询语句进行hash计算而得到一个hash值。然后,通过该hash值到Query Cache中去匹配。如果没有得到匹配结果,则会将这个hash值存放在一个hash链表中,同时将此次查询的结果存放至缓存中。存放hash值的链表的每个节点都会存放相应查询返回结果在缓存中的地址,以及该次查询所涉及到的一些表的相关信息。如果通过hash值匹配到相同的查询,则会直接将缓存中相应的查询结果返回给客户端。如果MySQL的任何一张表中的任何一条数据发生了变化,便会通知Query Cache,将和这张表相关的查询缓存全部失效,并释放占用的内存空间。修改表数据的操作包括:INSERT
、UPDATE
、DELETE
、TRUNCATE
、ALTER TABLE
、DROP TABLE
和DROP DATABASE
等等。
解决运行VMware时出现的C header files matching your running kernel were not found错误
在CentOS 6.7 x86_64的Desktop系统中成功安装VMware Workstation 12之后,若要运行VMware,则会出现以下错误:
继续阅读解决运行VMware时出现的C header files matching your running kernel were not found错误
外键关系:identifying和non-identifying
判别一个实体关系是Non-Identifying
(非标识关系)还是Identifying
(标识关系),只要区分子实体的主键,看是否需要父实体的外键来共同作为主键,需要则为Identifying
,如果子实体自己的主键就可唯一标识,则它为Non-Identifying
!
事务并发和事务隔离级别
一、事务并发问题
1. 丢失更新
撤销一个事务时,把其他事务已提交的更新数据覆盖(A和B事务并发执行,A事务执行更新之后提交;B事务在A事务更新之后,B事务结束之前也做了对该行数据的更新操作,然后回滚,则两次更新操作都丢失了)。
2. 脏读
一个事务读取到另一个事务未提交的更新数据(A和B事务并发执行,B事务执行更新之后,A事务查询B事务没有提交的数据,B事务回滚,则A事务得到的数据不是数据库中的真实数据。也就是脏数据,即和数据库中不一致的数据)。
在CentOS上挂载ISO镜像文件
一、环境描述
1. 操作系统
CentOS 6.7 x86_64
2. 挂载镜像
CentOS-6.7-x86_64-bin-DVD1.iso
CentOS-6.7-x86_64-bin-DVD2.iso