 SQLite概述、安装和使用SQLite概述、安装和使用 北京理工大学计算机学院 金旭亮 http://www.sqlite.org/ •一种单用户单文件的关系数据库 •占用资源少,适合于嵌入式产品 •无需安装,可以直接嵌入到应用程序中, Java应用只需引用一个jar包即可 •Android操作系统内置对SQLite的直接支持 SQLite概述 官网: http://www.sqlite.org/download org/download.html 访问官网,可以直接下载相 关平台的SQLite开发工具 下载这个压缩包,可以在 Windows上创建和管理Sqlite数 据库,适合于学习 Windows环境下使用SQLite 解压 命令行下打开此程序 SQLite Shell SQLite Shell是一个命令行工 具,可以用它来创建和存取 SQLite数据库。 SQLite Shell支持SQL标准命 令,以及SQLite扩展的命令 table test (id integer primary key, value text); 使用create table命令创建test表,表中有两个字段:id和value test表创建完成之后,打开文件资源管理器,你会发现test.db文件 己经创建好了,你可以在SQLite Shell中使用.tables命令列出当前 数据库(即test.db)中的所有表。 SQLite中的数据类型0 码力 | 17 页 | 717.73 KB | 1 年前3 SQLite概述、安装和使用SQLite概述、安装和使用 北京理工大学计算机学院 金旭亮 http://www.sqlite.org/ •一种单用户单文件的关系数据库 •占用资源少,适合于嵌入式产品 •无需安装,可以直接嵌入到应用程序中, Java应用只需引用一个jar包即可 •Android操作系统内置对SQLite的直接支持 SQLite概述 官网: http://www.sqlite.org/download org/download.html 访问官网,可以直接下载相 关平台的SQLite开发工具 下载这个压缩包,可以在 Windows上创建和管理Sqlite数 据库,适合于学习 Windows环境下使用SQLite 解压 命令行下打开此程序 SQLite Shell SQLite Shell是一个命令行工 具,可以用它来创建和存取 SQLite数据库。 SQLite Shell支持SQL标准命 令,以及SQLite扩展的命令 table test (id integer primary key, value text); 使用create table命令创建test表,表中有两个字段:id和value test表创建完成之后,打开文件资源管理器,你会发现test.db文件 己经创建好了,你可以在SQLite Shell中使用.tables命令列出当前 数据库(即test.db)中的所有表。 SQLite中的数据类型0 码力 | 17 页 | 717.73 KB | 1 年前3
 使用 Docker 建立 MySQL 集群使用 Docker 建立 Mysql 集群 软件环境介绍 操作系统:Ubuntu server 64bit 14.04.1 Docker 版本 1.6.2 数据库:Mariadb 10.10 (Mariadb 是 MySQL 之父在 MySQL 被 Oracle 收购之后 创建的分支,性能上优于 MySQL 开源版本) 第一步 安装 Docker 对于 Ubuntu,建议直接联网安装 Docker 的用户及其对应密码 6,设定 TERM 环境变量的值可以解决容器不能进入 mysql 控制台的问题。 对于不是自己建立的镜像,建立出来的容器未必能一次达到要求,建议是将 run 命令写成脚本,创建后使用 docker inspect <容器名> 仔细查看容器信息,关注镜像公开的端口和文件目录。如果发现达不到要求,使 用 docker rm -f <容器名> 删除容器后修改 run 脚本再次运行,直到满意为止。 有自带 vi,所以在两 个容器内都需要: apt-get update apt-get install vim 这样我们才能在容器内修改配置文件。 还有一种方法,就是我们在主数据库容器中操作,之后,使用 docker commit <主数据库容器名> mariadb 这样再创建的容器就包含 vi 了。 3.3 为讲述方便,现在假设:我们有了连个数据库,mdb1 和 mdb2, mdb1 我们作为主0 码力 | 3 页 | 103.32 KB | 1 年前3 使用 Docker 建立 MySQL 集群使用 Docker 建立 Mysql 集群 软件环境介绍 操作系统:Ubuntu server 64bit 14.04.1 Docker 版本 1.6.2 数据库:Mariadb 10.10 (Mariadb 是 MySQL 之父在 MySQL 被 Oracle 收购之后 创建的分支,性能上优于 MySQL 开源版本) 第一步 安装 Docker 对于 Ubuntu,建议直接联网安装 Docker 的用户及其对应密码 6,设定 TERM 环境变量的值可以解决容器不能进入 mysql 控制台的问题。 对于不是自己建立的镜像,建立出来的容器未必能一次达到要求,建议是将 run 命令写成脚本,创建后使用 docker inspect <容器名> 仔细查看容器信息,关注镜像公开的端口和文件目录。如果发现达不到要求,使 用 docker rm -f <容器名> 删除容器后修改 run 脚本再次运行,直到满意为止。 有自带 vi,所以在两 个容器内都需要: apt-get update apt-get install vim 这样我们才能在容器内修改配置文件。 还有一种方法,就是我们在主数据库容器中操作,之后,使用 docker commit <主数据库容器名> mariadb 这样再创建的容器就包含 vi 了。 3.3 为讲述方便,现在假设:我们有了连个数据库,mdb1 和 mdb2, mdb1 我们作为主0 码力 | 3 页 | 103.32 KB | 1 年前3
 2 Sharding-JDBC入门使用2 Sharding-JDBC入门使用 2.1不使用Spring 引入Maven依赖 基于Java编码的规则配置 Sharding-JDBC的分库分表通过规则配置描述,以下例子是根据user_id取模分库, 且根据 order_id取模分表的两库两表的配置。 2 Sharding-JDBC入门使用2 Sharding-JDBC入门使用 2.1不使用Spring 引入Maven依赖 基于Java编码的规则配置 Sharding-JDBC的分库分表通过规则配置描述,以下例子是根据user_id取模分库, 且根据 order_id取模分表的两库两表的配置。- org.apache.shardingsphere tables: 使用原生JDBC 通过ShardingDataSourceFactory或者YamlShardingDataSourceFactory工厂和规则配置对象 获取ShardingDataSource,ShardingDataSource实现自JDBC的标准接口DataSource。然后 可通过DataSource选择使用原生JDBC开发,或者使用JPA, MyBatis等ORM工具。 preparedStatement.setInt(2, 1001); try (ResultSet rs = preparedStatement.executeQuery()) { 2.2使用Spring 引入Maven依赖 基于Spring boot的规则配置 while(rs.next()) { System.out.println(rs0 码力 | 12 页 | 325.38 KB | 1 年前3
 《Redis使用手册》(试读版)使⽤散列键进⾏储存⽐使⽤字符串 键进⾏储存要节约⼀半以上的内存, 有时候甚⾄会更多。 3. 除了需要耗费更多内存之外, 更多的数据库键也需要占⽤更多的 CPU 。 每当 Redis 需要对数据库中的键 进⾏处理时, 数据库包含的键越多, 进⾏处理所需的 CPU 资源就会越多, 处理所耗费的时间也会越⻓, 典型的情况包括: 统计数据库和数据库键的使⽤情况; 对数据库执⾏持久化操作, ⼜或者根据持久化⽂件还原数据库; 。 表 3-2 对⽐字符串键和散列键 ⽐ 较 的 范 畴 结果 ⽐ 较 的 范 畴 结果 资源占⽤ 字符串键在数量较多的情况下,将占⽤⼤量的内存和 CPU 时间。 与此相反,将多个数据项储存到 同⼀个散列⾥⾯可以有效地减少内存和 CPU 消耗。 ⽀ 持 的 操 作 散列键⽀持的所有命令,⼏乎都有相应的字符串键版本,但字符串键⽀持的 SETRANGE 、 GETRANGE 等操作散列键并不具备。 因为缺少⾃动的阻塞操作, 所以这个程序在没有取得消息的情况下, 只能以⼀百毫秒⼀次的频率去尝试获取消 息, 如果队列为空的时间⽐较⻓, 那么这个程序就会发送很多多余的 LPOP 命令, 并因此浪费很多 CPU 资源和 ⽹络资源。 4.20.2 使⽤消息队列实现实时提醒 消息队列除了可以在应⽤程序的内部中使⽤, 还可以⽤于实现⾯向⽤户的实时提醒系统。 ⽐如说, 如果我们在构建⼀个社交⽹站的话, 那么可以使⽤0 码力 | 352 页 | 6.57 MB | 1 年前3 《Redis使用手册》(试读版)使⽤散列键进⾏储存⽐使⽤字符串 键进⾏储存要节约⼀半以上的内存, 有时候甚⾄会更多。 3. 除了需要耗费更多内存之外, 更多的数据库键也需要占⽤更多的 CPU 。 每当 Redis 需要对数据库中的键 进⾏处理时, 数据库包含的键越多, 进⾏处理所需的 CPU 资源就会越多, 处理所耗费的时间也会越⻓, 典型的情况包括: 统计数据库和数据库键的使⽤情况; 对数据库执⾏持久化操作, ⼜或者根据持久化⽂件还原数据库; 。 表 3-2 对⽐字符串键和散列键 ⽐ 较 的 范 畴 结果 ⽐ 较 的 范 畴 结果 资源占⽤ 字符串键在数量较多的情况下,将占⽤⼤量的内存和 CPU 时间。 与此相反,将多个数据项储存到 同⼀个散列⾥⾯可以有效地减少内存和 CPU 消耗。 ⽀ 持 的 操 作 散列键⽀持的所有命令,⼏乎都有相应的字符串键版本,但字符串键⽀持的 SETRANGE 、 GETRANGE 等操作散列键并不具备。 因为缺少⾃动的阻塞操作, 所以这个程序在没有取得消息的情况下, 只能以⼀百毫秒⼀次的频率去尝试获取消 息, 如果队列为空的时间⽐较⻓, 那么这个程序就会发送很多多余的 LPOP 命令, 并因此浪费很多 CPU 资源和 ⽹络资源。 4.20.2 使⽤消息队列实现实时提醒 消息队列除了可以在应⽤程序的内部中使⽤, 还可以⽤于实现⾯向⽤户的实时提醒系统。 ⽐如说, 如果我们在构建⼀个社交⽹站的话, 那么可以使⽤0 码力 | 352 页 | 6.57 MB | 1 年前3
 使用JDBC连接数据库使用JDBC连接数据库 北京理工大学计算机学院 金旭亮 Java数据库应用程序全局视图 Java应用程序 JDBC数据库驱动 (*.jar) JDBC规定了一整套访问数据库的标准API,所有数据库都 需要实现它,因此,使用JDBC访问数据库的Java应用程 序,是很容易切换底层数据库的。 JDBC核心类型一览表 核心类型(java.sql) 说明 DriverManager 负责装载/卸载驱动程序 接收并处理SQL的返回结果 关闭创建的各个对象 对于有可视化界面的应用 程序,或者是Server端 应用程序,应该在独立的 线程中完成这些步骤。 出于精简学习负担的目的,我们将以SQLite为例介绍 JDBC的基本使用,在此基础之上,后面选择微软的 SQL Server来介绍JDBC的高级特性…… JDBC连接SQLite数据库 下载SQLite的JDBC驱动-1 SQLite官网上没有直接提供java的驱动程序组件包,可以通 com/xerial/sqlite-jdbc 点这里下载源码zip 包以供学习和研究 托管于GitHub上的SQLite JDBC源码 编写代码使用JDBC访问SQLite 先使用命令行工具或者诸如DB Browser之 类的可视化工具创建一个测试数据库(假 设其名字为test.db) 之后再使用IntelliJ创建一个普通的Java 命令行项目,取名testConnectSQLite 添加JDBC驱动到项目中0 码力 | 20 页 | 1.02 MB | 1 年前3 使用JDBC连接数据库使用JDBC连接数据库 北京理工大学计算机学院 金旭亮 Java数据库应用程序全局视图 Java应用程序 JDBC数据库驱动 (*.jar) JDBC规定了一整套访问数据库的标准API,所有数据库都 需要实现它,因此,使用JDBC访问数据库的Java应用程 序,是很容易切换底层数据库的。 JDBC核心类型一览表 核心类型(java.sql) 说明 DriverManager 负责装载/卸载驱动程序 接收并处理SQL的返回结果 关闭创建的各个对象 对于有可视化界面的应用 程序,或者是Server端 应用程序,应该在独立的 线程中完成这些步骤。 出于精简学习负担的目的,我们将以SQLite为例介绍 JDBC的基本使用,在此基础之上,后面选择微软的 SQL Server来介绍JDBC的高级特性…… JDBC连接SQLite数据库 下载SQLite的JDBC驱动-1 SQLite官网上没有直接提供java的驱动程序组件包,可以通 com/xerial/sqlite-jdbc 点这里下载源码zip 包以供学习和研究 托管于GitHub上的SQLite JDBC源码 编写代码使用JDBC访问SQLite 先使用命令行工具或者诸如DB Browser之 类的可视化工具创建一个测试数据库(假 设其名字为test.db) 之后再使用IntelliJ创建一个普通的Java 命令行项目,取名testConnectSQLite 添加JDBC驱动到项目中0 码力 | 20 页 | 1.02 MB | 1 年前3
 使用 TiDB 进行实时数据分析-马晓宇0 码力 | 36 页 | 9.32 MB | 1 年前3 使用 TiDB 进行实时数据分析-马晓宇0 码力 | 36 页 | 9.32 MB | 1 年前3
 Pivotal Greenplum 最佳实践分享这样来保证每个Instance所需资源,保证系统 系统运行稳定性,例如,减少OOM发生的概率; • 对于以批处理、串行工作为主的系统,可以配 置到8个Instance,这样可以尽可能的发挥每个 CPU的处理性能。 Master query plan Client Segments Segments Segments Segments Segment Server:Mirror Reorganize相当于重建表,数据表对应的文件名(pg_class -> relfilenode)将会发生改变。 Vacuum Full的处理性能非常低,一般情况下不建议采用,可以用Reorganize代替、或者使用AO表; 系统表不支持Reorganize操作,因此,需要定期vacuum,例如设置定时作业,每周对所有系统表vacuum analyze一次 • 查询视图GP_TOOLKIT.GP_B PostgreSQL的MVCC事务语意依赖于比较事务ID(XID)的数值: 一条带有大于当前事务的XID的插入 XID的行版本是―属于未来的‖, 并且不应为当前事务可见。  PostgreSQL使用特殊的 XID(FrozenXID)与普通的XID进行区分。 FrozenXID总是被认为比任何普通 的XID旧。  GPDB中关闭了Autovacuum(GPDB 4.2.6 UPPER)0 码力 | 41 页 | 1.42 MB | 1 年前3 Pivotal Greenplum 最佳实践分享这样来保证每个Instance所需资源,保证系统 系统运行稳定性,例如,减少OOM发生的概率; • 对于以批处理、串行工作为主的系统,可以配 置到8个Instance,这样可以尽可能的发挥每个 CPU的处理性能。 Master query plan Client Segments Segments Segments Segments Segment Server:Mirror Reorganize相当于重建表,数据表对应的文件名(pg_class -> relfilenode)将会发生改变。 Vacuum Full的处理性能非常低,一般情况下不建议采用,可以用Reorganize代替、或者使用AO表; 系统表不支持Reorganize操作,因此,需要定期vacuum,例如设置定时作业,每周对所有系统表vacuum analyze一次 • 查询视图GP_TOOLKIT.GP_B PostgreSQL的MVCC事务语意依赖于比较事务ID(XID)的数值: 一条带有大于当前事务的XID的插入 XID的行版本是―属于未来的‖, 并且不应为当前事务可见。  PostgreSQL使用特殊的 XID(FrozenXID)与普通的XID进行区分。 FrozenXID总是被认为比任何普通 的XID旧。  GPDB中关闭了Autovacuum(GPDB 4.2.6 UPPER)0 码力 | 41 页 | 1.42 MB | 1 年前3
 2. Clickhouse玩转每天千亿数据-趣头条问题: 1:内存限制,对于一些大的查询会出现内存不够问题 2:存储限制,随着表越来多,磁盘报警不断 3:cpu限制 64G对于一些大表(每天600亿+)的处理,很容易报错,虽然有基于磁盘解决方案,但是会影响速度 clickhouse的数据目录还不支持多个数据盘,单块盘的大小限制太大 cpu需要根据实际情况而定 解决: 1:机器的内存推荐128G+ 2:采用软连接的方式,把不同的表分布到不同的盘上面,这样一台机器可以挂载更多的盘 imestamp”基数”比较高,对于排在第二位eventType索引, 这个时候对数据的过滤就非常有限了,这个时候几乎就要对当天的数据进行全部扫描 解决: 1:调整索引的顺序,推荐索引列的基数不要太高. 我们遇到的问题 Too many parts(304). Merges are processing significantly slower than inserts. 分析: 1:直接落盘,异步merge 查询过程中clickhouse-server进程挂掉 分析: clickhouse裸奔时max_memory_usage_for_all_queries默认值为0,即不限制clickhouse内存使用 解决: clickhouse安装完成以后,在users.xml文件中配置一下max_memory_usage_for_all_queries,控制 clickhouse-server最大占用内存,避免被OS0 码力 | 14 页 | 1.10 MB | 1 年前3 2. Clickhouse玩转每天千亿数据-趣头条问题: 1:内存限制,对于一些大的查询会出现内存不够问题 2:存储限制,随着表越来多,磁盘报警不断 3:cpu限制 64G对于一些大表(每天600亿+)的处理,很容易报错,虽然有基于磁盘解决方案,但是会影响速度 clickhouse的数据目录还不支持多个数据盘,单块盘的大小限制太大 cpu需要根据实际情况而定 解决: 1:机器的内存推荐128G+ 2:采用软连接的方式,把不同的表分布到不同的盘上面,这样一台机器可以挂载更多的盘 imestamp”基数”比较高,对于排在第二位eventType索引, 这个时候对数据的过滤就非常有限了,这个时候几乎就要对当天的数据进行全部扫描 解决: 1:调整索引的顺序,推荐索引列的基数不要太高. 我们遇到的问题 Too many parts(304). Merges are processing significantly slower than inserts. 分析: 1:直接落盘,异步merge 查询过程中clickhouse-server进程挂掉 分析: clickhouse裸奔时max_memory_usage_for_all_queries默认值为0,即不限制clickhouse内存使用 解决: clickhouse安装完成以后,在users.xml文件中配置一下max_memory_usage_for_all_queries,控制 clickhouse-server最大占用内存,避免被OS0 码力 | 14 页 | 1.10 MB | 1 年前3
 TiDB中文技术文档访问权限管理 TiDB 用户账户管理 使用加密连接 SQL 优化 理解 TiDB 执行计划 统计信息 语言结构 字面值 数据库、表、索引、列和别名 关键字和保留字 用户变量 表达式语法 注释语法 字符集和时区 字符集支持 字符集配置 时区 数据类型 日期和时间类型 基本数据类型 函数和操作符 函数和操作符概述 表达式求值的类型转换 操作符 控制流程函数 - 2 - 本文档使用 书栈(BookStack.CN) Values 数值字面值 字符串字面值 TiDB 用户文档 高级功能 历史数据回溯 垃圾回收 (GC) TiDB Ansible 常见运维操作 TiDB 运维文档 Try TiDB - 3 - 本文档使用 书栈(BookStack.CN) 构建 TiDB 运维文档 软硬件环境需求 部署集群 Ansible 部署方案(强烈推荐) 离线 Ansible 部署方案 Docker 部署方案 Docker Compose 集群扩容缩容方案 使用 Ansible 扩容缩容 升级 升级组件版本 TiDB 2.0 升级操作指南 性能调优 备份与迁移 备份与恢复 数据迁移 数据迁移概述 数据迁移 故障诊断 TiDB 周边工具 Syncer Loader TiDB-Binlog PD Control TiKV Control TiDB Controller TiDB-Binlog 部署方案 - 4 - 本文档使用 书栈(BookStack0 码力 | 444 页 | 4.89 MB | 6 月前3 TiDB中文技术文档访问权限管理 TiDB 用户账户管理 使用加密连接 SQL 优化 理解 TiDB 执行计划 统计信息 语言结构 字面值 数据库、表、索引、列和别名 关键字和保留字 用户变量 表达式语法 注释语法 字符集和时区 字符集支持 字符集配置 时区 数据类型 日期和时间类型 基本数据类型 函数和操作符 函数和操作符概述 表达式求值的类型转换 操作符 控制流程函数 - 2 - 本文档使用 书栈(BookStack.CN) Values 数值字面值 字符串字面值 TiDB 用户文档 高级功能 历史数据回溯 垃圾回收 (GC) TiDB Ansible 常见运维操作 TiDB 运维文档 Try TiDB - 3 - 本文档使用 书栈(BookStack.CN) 构建 TiDB 运维文档 软硬件环境需求 部署集群 Ansible 部署方案(强烈推荐) 离线 Ansible 部署方案 Docker 部署方案 Docker Compose 集群扩容缩容方案 使用 Ansible 扩容缩容 升级 升级组件版本 TiDB 2.0 升级操作指南 性能调优 备份与迁移 备份与恢复 数据迁移 数据迁移概述 数据迁移 故障诊断 TiDB 周边工具 Syncer Loader TiDB-Binlog PD Control TiKV Control TiDB Controller TiDB-Binlog 部署方案 - 4 - 本文档使用 书栈(BookStack0 码力 | 444 页 | 4.89 MB | 6 月前3
 TiDB v5.2 中文手册有差异的特性详细说明 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 52 2.7 使用限制 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 106 4.4.1 使用 TiUP 部署 TiDB 集群 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 132 5.3.1 使用 TiDB Lightning 从 Amazon Aurora MySQL 迁移全量数据· · · · · · · · · · · · · · · · · · · · · · · · · · · · 132 5.3.2 使用 TiDB Lightning 从 MySQL SQL 文件迁移数据 · · · · ·0 码力 | 2259 页 | 48.16 MB | 1 年前3 TiDB v5.2 中文手册有差异的特性详细说明 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 52 2.7 使用限制 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 106 4.4.1 使用 TiUP 部署 TiDB 集群 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 132 5.3.1 使用 TiDB Lightning 从 Amazon Aurora MySQL 迁移全量数据· · · · · · · · · · · · · · · · · · · · · · · · · · · · 132 5.3.2 使用 TiDB Lightning 从 MySQL SQL 文件迁移数据 · · · · ·0 码力 | 2259 页 | 48.16 MB | 1 年前3
共 252 条
- 1
- 2
- 3
- 4
- 5
- 6
- 26














 
 