0.在 scala> 下运行Scala程序
首先cd到.scala文件所在的目录下
scalac这个scala文件,然后import package的名字.object的名字
然后就能使用 object的名字.def的名字来运行这个def
0.在 scala> 下运行Scala程序
首先cd到.scala文件所在的目录下
scalac这个scala文件,然后import package的名字.object的名字
然后就能使用 object的名字.def的名字来运行这个def
安装scala,不要使用sudo apt-get install scala来安装
1.从下面网址来下载Scala文件
1 | http://www.scala-lang.org/download/2.11.8.html |
2.下载下的 scala-2.11.8.tgz 文件解压,然后把文件mv到/usr/local目录下
3.在/etc/profile目录下加上,不要忘记了source
1 | export SCALA_HOME=/usr/local/scala-2.11.8 |
Apache官方仓库
1 | https://repository.apache.org/ |
Maven中央仓库
1 | http://mvnrepository.com/ |
Maven介绍,包括作用、核心概念、用法、常用命令、扩展及配置
1 | http://www.trinea.cn/android/maven/ |
Maven常用命令
1 | http://www.cnblogs.com/kingfy/p/5665218.html |
1. 创建Maven的普通java项目:
1 | mysql> SHOW VARIABLES LIKE 'datadir'; |
查看datadir目录下的所有文件夹
1 | sh-4.2$ ls -l | grep '^d' |
这和MySQL的database是对应的
其中default是创建的database,目录下会包含opt,frm和ibd文件
db.opt,用来存储当前数据库的默认字符集和字符校验规则。
frm(Form)文件存储表定义。
ibd(InnoDB Data)存储数据和索引文件。
1 | sh-4.2$ pwd |
information_schema 是每个MySQL实例中的一个数据库,存储MySQL服务器维护的所有其他数据库的信息。INFORMATION_SCHEMA数据库包含几个只读的表。它们实际上是视图,而不是基表,因此没有与它们关联的文件,而且你不能在它们上设置触发器。此外,没有使用该名称的数据库目录。
mysql 数据库为系统数据库。它包含存储MySQL服务器运行时所需信息的表。参考:https://dev.mysql.com/doc/refman/5.7/en/system-schema.html
performance_schema 是一个用于在底层监控MySQL服务器执行的特性。参考:https://dev.mysql.com/doc/refman/5.7/en/performance-schema-quick-start.html
sys schema,这是一组帮助dba和开发人员解释由Performance schema收集的数据的对象。Sys schema对象可用于典型的调优和诊断用例。参考:https://dev.mysql.com/doc/refman/5.7/en/sys-schema.html
参考:MySQL系统库作用:performance_schema,sys,information_schema,mysql
其他文件
1 | sh-4.2$ ls -l | grep -v '^d' |
在 MySQL 的 InnoDB 存储引擎中,这些文件(ib_buffer_pool
、ib_logfile0
、ib_logfile1
、ibdata1
、ibtmp1
)代表了数据库运行时的不同数据结构和存储机制。它们各自有不同的用途,用于管理和存储 InnoDB 的数据和日志。
ib_buffer_pool
文件用于持久化存储 InnoDB 缓冲池(Buffer Pool)中的热数据页的状态。当 MySQL 服务器重启时,通过此文件恢复缓冲池的内容,减少重启后重新填充缓冲池所需的时间。
ib_logfile0
和 **ib_logfile1** 这两个文件是 InnoDB 的 **重做日志(Redo Logs)** 文件,记录了数据库事务的更改信息(插入、更新、删除等)。这些日志文件用于在崩溃恢复过程中重新应用未写入数据文件的更改。<br />
ibdata1
是 InnoDB 系统表空间的默认文件。它用于存储多个 InnoDB 表的数据和索引,以及全局表元数据(如数据字典、回滚段等)。
表数据即可以存储在系统表空间ibdata1中,也可以存储在独立表空间中ibd,这个由参数 innodb_file_per_table 来控制,MySQL5.7及以上这个默认值为1,所以MySQL每张表都是一个独立的ibd文件。
1 | mysql> SHOW VARIABLES LIKE 'innodb_file_per_table'; |
ibtmp1
是 InnoDB 的 临时表空间文件,专门用于存储临时表和临时数据。
参考:https://dev.mysql.com/doc/refman/5.7/en/innodb-architecture.html
表空间是 InnoDB 用于存储表数据和索引数据的物理存储区域。可以把表空间理解为一块大的存储区域,其中可以存放多个表和索引。
表空间由多个文件组成,这些文件可能是系统表空间(如 ibdata1
)、独立表空间(每个表对应一个 .ibd
文件)、通用表空间(用户定义的多个表空间文件)、临时表空间(专门用于存储临时表和临时数据等,如ibtmp1
)、Undo 表空间(也叫做回滚表空间,是 InnoDB 存储引擎中用于存储事务的 undo logs(回滚日志) 的一种特殊类型的表空间)。
每个表空间(tablespace)由页(page)组成。MySQL实例中的每个表空间都有相同的页面大小。默认情况下,所有表空间的页面大小都是16KB。在创建MySQL实例时,可以通过指定innodb_page_size选项将页面大小减小到8KB或4KB。您还可以将页面大小增加到32KB或64KB。磁盘和内存之间的数据传输是逐页进行的,innodb_page_size表示InnoDB在任何时候在磁盘(数据文件)和内存(Buffer Pool)之间传输数据的大小。
每个表中的数据被划分为多个页(page)。组成每个表的页(page)被安排在一个称为b树索引的树状数据结构中。表数据/聚簇索引(Table Data)和辅助索引(Secondary Index)都使用这种类型的结构。表示整个表的b树索引称为聚簇索引,它是根据主键列组织的。聚簇索引数据结构的节点包含行(row)中所有列(字段)的值。辅助索引结构的节点包含索引列和主键列的值。
参考:https://dev.mysql.com/doc/refman/5.7/en/innodb-row-format.html
B+ 树中包含数据页(Data Page)和索引页(Index Page)
索引页位于 B+ 树的非叶子节点中,主要存储索引键和指向子节点的指针。
数据页位于 B+ 树的叶子节点中,存储实际的数据记录。
Page的结构如下图,其中User Records是一个单向链表,而
这些页被分组为大小为1MB的区段(extents),其中最大的页大小为16KB(64个连续的16KB页,或128个8KB页,或256个4KB页)。对于一个32KB的页面,区段大小是2MB。对于64KB的页面,区段大小为4MB。
B+ 树中每一层都是通过双向链表连接起来的,如果是以页为单位来分配存储空间,那么链表中相邻的两个页之间的物理位置并不是连续的,可能离得非常远,那么磁盘查询时就会有大量的随机I/O,随机 I/O 是非常慢的。所以在表中数据量大的时候,为某个索引分配空间的时候就不再按照页为单位分配了,而是按照区(extent)为单位分配。每个区的大小为 1MB,对于 16KB 的页来说,连续的 64 个页会被划为一个区,这样就使得链表中相邻的页的物理位置也相邻,就能使用顺序 I/O 了。
表空间是由各个段(segment)组成的,段是由多个区(extent)组成的。段一般分为数据段、索引段和回滚段等。
表空间中的“文件”在InnoDB中称为段(segment)。(这些段不同于回滚段,后者实际上包含许多表空间段。)
参考:https://dev.mysql.com/doc/refman/5.7/en/innodb-file-space.html
InnoDB存储引擎支持四种行格式:REDUNDANT, COMPACT, DYNAMIC 和 COMPRESSED。
MySQL5.7默认的row format是dynamic
1 | mysql> SHOW VARIABLES LIKE 'innodb_default_row_format'; |
变长(Variable-length)列不符合列值存储在b树索引节点中的规则。变长列太长而不能放在b树页上,它们存储在单独分配的磁盘页上,称为溢出页(overflow page)。这样的列称为页外列。页外列的值存储在溢出页的单链表中,每个列都有自己的一个或多个溢出页的列表。根据列的长度,可变长列的所有值或其前缀都存储在B-tree中,以避免浪费存储空间和另行读取一页。
参考:https://dev.mysql.com/doc/refman/5.7/en/innodb-row-format.html
Buffer Pool(缓冲池)是主内存中的一个区域,InnoDB在访问表和索引数据时将在这里缓存数据。缓冲池允许频繁使用的数据直接从内存中访问,这加快了处理速度。在专用服务器上,高达80%的物理内存通常分配给缓冲池。
为了提高大容量读操作的效率,缓冲池被划分为可以容纳多行数据的页。为提高缓存管理的效率,缓冲池实现为页(Page)的链表。很少使用的数据使用最近最少使用(least recently used, LRU)算法的变体从缓存中老化。在需要空间向缓冲池添加新页时,会将最近最少使用的页清除,并将新页添加到列表的中间。
Buffer Pool的作用:
参考:MySQL 日志:undo log、redo log、binlog 有什么用?
参考:深入理解MySQL索引原理和实现——为什么索引可以加速查询?
存储引擎 | InnoDB | MyISAM | ||||
---|---|---|---|---|---|---|
索引类型 | InnoDB 主键是聚簇索引,二级索引是非聚簇索引 | MyISAM 是非聚簇索引 | ||||
支持事务 | InnoDB 支持事务 | MyISAM 不支持事务 | ||||
锁 | InnoDB 支持表锁,但默认使用行锁 | MyISAM 支持表锁,不支持行锁 | ||||
支持全文索引 | InnoDB(5.6以后) 支持全文索引 | MyISAM 支持全文索引 | ||||
并发性能 | InnoDB 适用于大量的插入、删除和更新操作,尤其是高并发的写操作场景,因为它支持行级锁和多版本并发控制(MVCC) | MyISAM 由于其表锁机制,非常适合只读操作的大量 select 查询。 | ||||
外键约束 | InnoDB 支持外键约束 | MyISAM 不支持外键约束 | ||||
Hadoop学习笔记——WordCount1.在IDEA下新建工程,选择from Mevan GroupId:WordCount ArtifactId:com.hadoop.1st Project name:WordCount
2.pom.xml文件
Hadoop学习笔记——安装Hadoop
Ubuntu下从外网上北邮人BT1.使用VPN+ipv6(测试于2017-01,该方法已经不可用)首先你需要有北邮的VPN账号和密码,只要是北邮的学生都有 账号和密码不懂的请查看 VPN账号密码说明 接下来登录https://sslvpn.bupt.edu.cn,输入账号和密码 已经登录好了 但是还是不能上BYR BT,是因为没有把ipv4转成ipv6,在Ubuntu下进行转换很简单, 只需要安装miredo, 输入命令
机器学习——利用SVD简化数据奇异值分解(Singular Value Decompositon,SVD),可以实现用小得多的数据集来表示原始数据集。 Python自然语言处理学习——jieba分词jieba——“结巴”中文分词是sunjunyi开发的一款Python中文分词组件,可以在Github上查看jieba项目。 要使用jieba中文分词,首先需要安装jieba中文分词,作者给出了如下的安装方法: 1.全自动安装: 2.半自动安装:先下载 http://pypi.python.org/pypi/jieba/ ,解压后运行 3.手动安装:将 jieba 目录放置于当前目录或者 site-packages 目录 机器学习——利用PCA来简化数据 |