数据表

SqlServer2005 海量数据 数据表分区解决难题

喜夏-厌秋 提交于 2020-03-02 12:38:21
今天遇到难题公司做股票交易系统数据量比较大光备份文件从03-09年就有500G 虽然现在硬盘换到1500GB 但要解决怎样将这些年的数据都附加到一个数据库当中很是头痛 在网上泡了一天终于找到比较理想的方案,希望有所帮助 超大型数据库的大小常常达到数百 GB ,有时甚至要用 TB 来计算。而单表的数据量往往会达到上亿的记录,并且记录数会随着时间而增长。这不但影响着数据库的运行效率,也增大数据库的维护难度。除了表的数据量外,对表不同的访问模式也可能会影响性能和可用性。这些问题都可以通过对大表进行合理分区得到很大的改善。当表和索引变得非常大时,分区可以将数据分为更小、更容易管理的部分来提高系统的运行效率。如果系统有多个 CPU 或是多个磁盘子系统,可以通过并行操作获得更好的性能。所以对大表进行分区是处理海量数据的一种十分高效的方法。本文通过一个具体实例,介绍如何创建和修改分区表,以及如何查看分区表。 1 SQL Server 2005 SQL Server 2005 是微软在推出 SQL Server 2000 后时隔五年推出的一个数据库平台,它的数据库引擎为关系型数据和结构化数据提供了更安全可靠的存储功能,使用户可以构建和管理用于业务的高可用和高性能的数据应用程序。此外 SQL Server 2005 结合了分析、报表、集成和通知功能。这使企业可以构建和部署经济有效的 BI 解决方案

自己来控制EntityFramework4.1 Code-First,逐步消除EF之怪异现象

泪湿孤枕 提交于 2020-03-02 10:35:03
最近的项目开始使用EF4.1,拜读各路大侠文章数遍,满以为可以轻车熟路,却屡遭悲惨啊,怪异现象接连... 1, 虽然使用Code-First模式,就是因为它代码整洁清爽条理,但还是习惯先建立数据表,再POCO... 结果发现Entity实体类与数据表的映射是EF自己独特智能操控的,比如实体类名为Product,它会智能映射成Products的表,加了个"s",然而,Category的实体类却映射成了Categories, 它居然能识别单词的复数写法,很神奇,难道它内置词典?要不然它该映射成Categorys才合理嘛(虽然它不是个单词),你说EF神奇么,真神奇! 后来,同事给个方法,解决了这个神奇的功能,我要自控,有些关键地方不需要EF来控制我的想法,于是在分类名上面添加一个特性[Table("映射的表名")]即可。 [Table("Product")] public class Product { public int ID { get; set; } [Required] [Display(Name = "产品名")] public string Name { get; set; } public int CategoryID { get; set; } [Required] [Display(Name = "产品价格")] public Decimal? Price { get

MySQL 连接的使用:语法及案例剖析、INNER JOIN、LEFT JOIN、RIGHT JOIN

纵饮孤独 提交于 2020-03-02 10:29:21
MySQL 连接的使用 在前几章节中,我们已经学会了如何在一张表中读取数据,这是相对简单的,但是在真正的应用中经常需要从多个数据表中读取数据。 本章节我们将向大家介绍如何使用 MySQL 的 JOIN 在两个或多个表中查询数据。 你可以在 SELECT, UPDATE 和 DELETE 语句中使用 Mysql 的 JOIN 来联合多表查询。 JOIN 按照功能大致分为如下三类: INNER JOIN(内连接,或等值连接) :获取两个表中字段匹配关系的记录。 LEFT JOIN(左连接): 获取左表所有记录,即使右表没有对应匹配的记录。 RIGHT JOIN(右连接): 与 LEFT JOIN 相反,用于获取右表所有记录,即使左表没有对应匹配的记录。 在命令提示符中使用 INNER JOIN 我们在RUNOOB数据库中有两张表 tcount_tbl 和 runoob_tbl。两张数据表数据如下: 实例 尝试以下实例: 测试实例数据 mysql > use RUNOOB ; Database changed mysql > SELECT * FROM tcount_tbl ; +---------------+--------------+ | runoob_author | runoob_count | +---------------+--------------+ | 菜鸟教程

mysql查看数据表索引信息

白昼怎懂夜的黑 提交于 2020-03-02 07:37:32
查看索引 mysql> show index from tblname; mysql> show keys from tblname; · Table 表的名称。 · Non_unique 如果索引不能包括重复词,则为0。如果可以,则为1。 · Key_name 索引的名称。 · Seq_in_index 索引中的列序列号,从1开始。 · Column_name 列名称。 · Collation 列以什么方式存储在索引中。在MySQL中,有值‘A’(升序)或NULL(无分类)。 · Cardinality 索引中唯一值的数目的估计值。通过运行ANALYZE TABLE或myisamchk -a可以更新。基数根据被存储为整数的统计数据来计数,所以即使对于小型表,该值也没有必要是精确的。基数越大,当进行联合时,MySQL使用该索引的机 会就越大。 · Sub_part 如果列只是被部分地编入索引,则为被编入索引的字符的数目。如果整列被编入索引,则为NULL。 · Packed 指示关键字如何被压缩。如果没有被压缩,则为NULL。 · Null 如果列含有NULL,则含有YES。如果没有,则该列含有NO。 · Index_type 用过的索引方法(BTREE, FULLTEXT, HASH, RTREE)。 · Comment 来源: https://www.cnblogs.com

关于数据库的分库分表

家住魔仙堡 提交于 2020-03-01 19:10:41
什么是分库分表 从字面上简单理解,就是把原本存储于一个库的数据分块存储到多个库上,把原本存储于一个表的数据分块存储到多个表上。 为什么分库分表 当一张表的数据达到几千万时,你查询一次所花的时间会变多,如果有联合查询的话,我想有可能会死在那儿了。分表的目的就在于此,减小数据库的负担,缩短查询时间。 mysql中有一种机制是表锁定和行锁定,是为了保证数据的完整性。表锁定表示你们都不能对这张表进行操作,必须等我对表操作完才行。行锁定也一样,别的sql必须等我对这条数据操作完了,才能对这条数据进行操作。 如何分库分表 垂直切分 将表按照功能模块、关系密切程度划分出来,部署到不同的库上。例如,我们会建立定义数据库workDB、商品数据库payDB、用户数据库userDB、日志数据库logDB等,分别用于存储项目数据定义表、商品定义表、用户数据表、日志数据表等。 水平切分 当一个表中的数据量过大时,我们可以把该表的数据按照某种规则,例如userID散列,进行划分,然后存储到多个结构相同的表,和不同的库上。例如,我们的userDB中的用户数据表中,每一个表的数据量都很大,就可以把userDB切分为结构相同的多个userDB:part0DB、part1DB等,再将userDB上的用户数据表userTable,切分为很多userTable:userTable0、userTable1等

MYSQL数据库及字段命名规范

*爱你&永不变心* 提交于 2020-03-01 16:23:07
1. 数据库命名规范 由小写字母及下划线组成,一般采用业务名称简写。如 web_19floor_net web_car 备份数据库名称为正式库+当前时间 . web_19floor_net_20070403 web_car_20070403 2. 数据库表命名规范 数据表名使用小写英文以及下划线组成,尽量说明是那个应用或者系统在使用的. 相关应用的数据表使用同一前缀,如 论坛的表使用cdb_前缀,博客的数据表使用supe_前缀,前缀名称一般不超过5字 比如: web_user web_group supe_userspace 备份数据表名使用正式表名加上备份时间组成,如: web_user_20070403 web_group_20070403 supe_userspace_20070403 3. 字段命名规范 字段名称使用单词组合完成,首字母小写,后面单词的首字母大写,最好是带表名前缀. 如 web_user 表的字 段: userId userName userPassword 表与表之间的相关联字段要用统一名称, 如 web_user 表 里面的 userId 和 web_group 表里面的 userId 相对应 4. 字段类型规范 规则:用尽量少的存储空间来存 数一个字段的数据. 比如能用int的就不用char或者varchar 能用tinyint的就不用int 能用

hive 导入数据表乱码

大憨熊 提交于 2020-03-01 15:10:12
emp表的数据来自oracle的emp表中,windows中使用plsql导出的数据文件为emp.csv,使用hdfs dfs -put emp.csv /files 上传到hdfs中; create external table emp (empno int,ename varchar(64),job varchar(64),mgr int,hiredate date,sal float,comm float,deptno int ) row format delimited fields terminated by ',' location '/files'; ALTER TABLE newemp SET SERDEPROPERTIES ('serialization.encoding'='gbk'); 由于windows中导出的文件编码默认为gbk,所以只需要设置hive表的格式也为gbk即可。 字符编码相关信息 来源: oschina 链接: https://my.oschina.net/u/1011578/blog/537452

mysql详解

佐手、 提交于 2020-03-01 11:59:43
mysql命令 mysql登录参数: -D, --database 指定数据库 --delimiter 指定分隔符 -h, --host 指定服务器地址 -p, --password 指定密码 -P, --port 指定端口 --prompt 设置提示符 -u, --user 指定用户名 -V, --version 输出版本信息并退出 修改命令提示符: 通过参数指定提示符, mysql -uroot -p123456 --prompt 提示符 通过命令指定提示符, mysql> prompt 提示符; 提示符: \D 完整的日期 \d 当前数据库 \h 服务器名称 \u 当前数据库 常用命令: SELECT VERSION(); 显示当前服务器版本 SELECT NOW(); 显示当前日期时间 SELECT USER(); 显示当前用户 mysql语句规范: 1. 关键字与函数名称全部大写 2. 数据库名称、表名称、字段名称全部小写 3. SQL语句必须以分号结尾 操作数据库 CREATE DATABASE 创建数据库 ALTER DATABASE 修改数据库 DROP DATABASE 删除数据库 创建数据库: {} 为必选项; | 表示或; [] 为可选项。下同 CREATE { DATABASE | SCHEMA } [ IF NOT EXISTS ] db_name [

从零开始写一个武侠冒险游戏-3-地图生成

∥☆過路亽.° 提交于 2020-03-01 09:57:18
从零开始写一个武侠冒险游戏-3-地图生成 概述 前面两章我们设计了角色的状态, 绘制出了角色, 并且赋予角色动作, 现在是时候为我们的角色创造一个舞台了, 那就是游戏地图(我们目前做的是一个 2D 游戏, 因此叫 地图 , 如果是 3D , 则叫 地形 ). 地图生成也是游戏开发的一项基本技术, 涉及到方方面面的技能, 而且地图的数据结构要考虑到游戏里的其他景物跟角色的显示和交互, 对于整个游戏程序的效率起着决定性的影响, 不过我们这里先解决有没有的问题, 目标不太高, 能流畅运行就可以了. 最简原型 跟我们一向提倡的大思路一致, 一切从简出发, 先弄个原型跑起来再说. 经验之谈: 很多开发过程中的难题都是因为我们一开始就引入了过于复杂的问题, 制定了太大的目标, 试图一开始就把方方面面都考虑到, 结果无形中就增加了难度, 不得不承认, 这种顶层设计的思路是不太符合事物发展的规律的, 也不符合生物的进化规律, 所以实现起来就比较困难, 如果我们遵循从简单到复杂, 从原型到成品的开发思路, 就会发现开发过程变得顺利很多. 游戏地图原理 简单说来, 游戏地图有两个层面, 一个是显示到屏幕上的图形图像, 一个是隐藏在图像后面的数据结构, 前者是游戏跟玩家交互的界面, 后者是游戏中绘制出来的各种对象跟程序交互的接口. 比如玩家操纵一个游戏角色从左边一个位置走到右边一个位置,

【03】Python科学计算:Pandas

谁说胖子不能爱 提交于 2020-02-29 23:07:43
上一章中,我们讲了 Python 的一个重要的第三方库 NumPy,今天我来给你介绍 Python 的另一个工具 Pandas。 在数据分析工作中,Pandas 的使用频率是很高的,一方面是因为 Pandas 提供的基础数据结构 DataFrame 与 json 的契合度很高,转换起来就很方便。另一方面,如果我们日常的数据清理工作不是很复杂的话,你通常用几句 Pandas 代码就可以对数据进行规整。 Pandas 可以说是基于 NumPy 构建的含有更高级数据结构和分析能力的工具包。在 NumPy 中数据结构是围绕 ndarray 展开的,那么在 Pandas 中的核心数据结构是什么呢? 下面主要给你讲下 Series 和 DataFrame 这两个核心数据结构,他们分别代表着一维的序列和二维的表结构。基于这两种数据结构,Pandas 可以对数据进行导入、清洗、处理、统计和输出。 数据结构:Series 和 DataFrame Series 是个定长的字典序列。说是定长是因为在存储的时候,相当于两个 ndarray,这也是和字典结构最大的不同。因为在字典的结构里,元素的个数是不固定的。 Series 有两个基本属性:index 和 values。在 Series 结构中,index 默认是 0,1,2,……递增的整数序列,当然我们也可以自己来指定索引,比如 index=[‘a’,