数据库

IV 12 MySQL+drbd+heartbeat

一主多从是最常用的DB架构方案,该架构部署简单.维护方便,通过代理或程序的方式可实现rw splitting,且多个从库通过LVS或haproxy实现LB分担r的压力,排除了r的单点问题,但仅有一个主库这也是单点,若主出问题w将停止,最简单的方案人工介入,做监控,主一旦宕机,管理人员手动选择半同步的那个从改为主,让其它从与新的主同步,人工介入虽可行但高要求的场合并不适用 注: 正常情况下MySQL-M-active负责w,MySQL-M-inactive为不可见状态,MySQL slave负责r

MySQL--数据的增删改(查在下一节单讲)

- 增加 insert into ... values(...)  insert into 表名:values()要包含全部的数据:  insert into 表名(字段):values()只需要列举对应的数据: | 全列插入 insert into students values(0,'郭靖',1,'蒙古','2016-1-2'); | 部分插入 insert into students (name, birth) values ("王二", "2008-08-08&quo

SQL Select 语句小数位数影响计算的准确率的问题

在财务数据计算中,特别是分摊过程中,0.0001% 和0.00012%看似极小的差异,但是会造成最后求和很大的差异,因此,我们在计算中需要尽可能多的保留占比的小数位数 可以在SELECT CONVERT(float,x) /CONVERT(float,y) as pct ...... 或者显示的指定精度解决,CONVERT(DECIMAL(38,12),x) /CONVERT(DECIMAL(38,12),y) as pct 两种方法都可解决 原文地址:https://www.cnblogs.c

[1]SQL SELECT 语句

SQL SELECT 语句 "Websites" 表的数据: +----+--------------+---------------------------+-------+---------+ | id | name | url | alexa | country | +----+--------------+---------------------------+-------+---------+ | 1 | Google | https://www.google.cm/ |

C#连接SqlServer数据库(ADO.NET)

ADO.NET 向.NET程序员公开数据访问服务的类,用于对Microsoft SQL Server和XML 等数据源进行访问,还提供对OLE DB和XML公开的数据源提供一致访问的方法. 两种访问数据的模型:无连接模型(脱机)和连接模型(联机). 无连接将数据下载到客户机上,并在客户机上将数据封装到内存中,然后可以像访问本地关系数据库一样访问内存中的数据(如DataSet). 连接模型则依赖于逐记录的访问,这种访问要求打开并保持数据源的连接. 联机时使用Connection.Command.D

35. SQL -- 聚集索引和非聚集索引(1)

索引概述: 用户对数据库最频繁的操作是进行数据查询.一般情况下,数据库在进行查询操作时需要对整个表进行数据搜索.当表中的数据很多时,搜索数据就需要很长的时间,这就造成了服务器的资源浪费.为了提高检索数据的能力,数据库引入了索引机制.数据库索引好比是一本书前面的目录,能加快数据库的查询速度. 例如这样一个查询: select * from table1 where id=44. 如果没有索引,必须遍历整个表,直到ID 等于44 的这一行被找到为止:有了索引之后(必须是在ID 这一列上建立的索引),

LINQ to SQL语句(12)之Delete和使用Attach

1.简单形式 说明:调用DeleteOnSubmit方法即可. OrderDetail orderDetail = db.OrderDetails.First (c => c.OrderID == 10255 && c.ProductID == 36); db.OrderDetails.DeleteOnSubmit(orderDetail); db.SubmitChanges(); 语句描述:使用DeleteOnSubmit方法从OrderDetail 表中删除OrderDetail

sqlyog 如何导出建表语句

真傻了,这个问题弄了半天. 解决 点击表名后,在右侧的信息栏里面有啊: PS - 个人博客链接:sqlyog 如何导出建表语句 原文地址:https://www.cnblogs.com/feiffy/p/11357052.html

Redis深入学习笔记(三)RDB及AOF流程

RDB是Redis持久化数据的一种方式,是执行时间点的Redis内存快照,redis数据还原时加载rdb文件,Redis的主从数据同步也是基于RDB实现的. RDB流程: 1)执行bgsave命令,Redis父进程判断当前是否存在正在执行的子进程,如RDB/AOF子进程,如果存在bgsave命令直接返回. 2)父进程执行fork操作创建子进程,fork操作过程中父进程会阻塞,通过info stats命令查看latest_fork_usec选项,可以获取最近一个fork操作的耗时,单位为微秒. 3

Cannot create an instance of OLE DB provider “OraOLEDB.Oracle” for linked server "xxxxxxx".

在SQL SERVER 2008 R2下用Windows 身份认证的登录名创建了一个访问ORACLE数据库的链接服务器xxxxx,测试成功,木有问题,但是其它登录名使用该链接服务器时,报如下错误: 消息 7302,级别 16,状态 1,第 1 行 Cannot create an instance of OLE DB provider "OraOLEDB.Oracle" for linked server "xxxxxx". 此时需要在"服务器对象&quo

讨论贴:在sp_executesql 中生成的临时表的可见性

首先创建数据表 IF object_id('TestTable') IS NOT NULL DROP TABLE TestTable GO CREATE TABLE TestTable(id INT IDENTITY(1,1),Info VARCHAR(10)) GO INSERT TestTable SELECT 'a' UNION ALL SELECT 'b' GO 然后依次执行以下三个脚本 脚本一: EXEC('SELECT * INTO #temp FROM TestTable')SEL

MYSQL,innodb_buffer_pool_size内存分配方式

以前一直以为MYSQL,innodb_buffer_pool_size=8G,MySQL一起动就会将占用掉8G内存(认为TOP可以看到内存被使用了8G),但是最近才仔细研究一下,原来不是这样的(可能自己对Linux malloc内存分配也只是知道了个皮毛吧),MySQL启动时实际只是在虚拟内存中分配了地址空间,而并没有真正的映射到物理内存上. 因为malloc分配内存是先在虚拟内存中分配地址的,到实际使用时才真正的映射到物理内存 因此这个地方,如果由于机器内存使用不当,到了MySQL真正要映射物

MySQL中内存分为全局内存和线程内存

首先我们来看一个公式,MySQL中内存分为全局内存和线程内存两大部分(其实并不全部,只是影响比较大的 部分): 复制代码 代码如下: per_thread_buffers=(read_buffer_size+read_rnd_buffer_size+sort_buffer_size+thread_stack+join_buffer_size+binlog_cache_size+tmp_table_size)*max_connectionsglobal_buffers=innodb_buffer_

使用PowerDesigner导出MySQL数据库建模

数据库服务器在linux上面,客户端本子win8系统 1.安装odbc 1.1 下载odbc,http://dev.mysql.com/downloads/connector/odbc/  Windows (x86, 64-bit), MSI Installer 1.2 安装odbc(略) 1.3 打开odbc连接MySQL server,控制面板-查看方式选择小图标-管理工具-odbc数据源(64位)如图1-添加“MySQL ODBC 5.3 Unicode Driver”如图2-图3 图1

PowerDesigner连接MySQL

1.使用JDBC连接,地址:http://dev.mysql.com/downloads/connector/j/ 2.需安装Java(应该只要JRE):http://www.oracle.com/technetwork/java/javase/downloads/index-jsp-138363.html 3.安装Java,参考:http://jingyan.baidu.com/article/e5c39bf5a418e439d76033ee.html 主要包括JAVA_HOME = C:\P

查询DB表实际大小

1.查询DB表实际大小(保证clob/blob/nclob lob大字段)  select round(sum(bytes/1024/1024/1024),2) ||'G' from dba_segments where owner='用户'   and segment_name ='表' OR segment_name IN (select SEGMENT_NAME from dba_LOBS where TABLE_NAME='表' and owner='用户'); 如果不是dba用户可以用

SQL三大范式三个例子搞定

第一范式(1NF) (必须有主键,列不可分) 数据库表中的任何字段都是单一属性的,不可再分 create table aa(id int,NameAge varchar(100)) insert aa values(1,''无限-女'') 没有达到第一范式 create table aa(id int,name varcahr(10),age char(2)) insert aa values(1,''无限'',''女'') 达到第一范式 第二范式(2NF) 数据库表中非关键字段对任一候选关键字

4、Oracle用户、权限、角色

1.用户创建.修改.删除 创建用户语法: CREATE USER user_name ----创建用户名称 IDENTIFIED BY password ----用户口令 [ DEFAULT TABLESPACE default_tablespace | ----指定默认表空间 TEMPORARY TABLESPACE temp_tablespace    | ----指定临时表空间 PROFILE profile ----用户的资源文件,默认default QUOTA [ integer K

SQL的别名和SQL的执行顺序和SQL优化

SQL的别名 1.不可以在where子句中使用列名的别名,即select name t from emp where t>2999;是不允许的 2.使用别名的好处: 提高SQL的易读性 提高SQL的解析执行效率 语法检查 语义检查 共享池检查 生成执行树 执行 3.SQL的硬解析和软解析? SQL的执行顺序 1.from语句--where语句--group by语句--having语句--select语句--order by语句 rownum的使用 select * from emp rownu

Mysql 指令大全

1.连接Mysql 格式: mysql -h主机地址 -u用户名 -p用户密码 1.连接到本机上的MYSQL.首先打开DOS窗口,然后进入目录mysql\bin,再键入命令mysql -u root -p,回车后提示你输密码.注意用户名前可以有空格也可以没有空格,但是密码前必须没有空格,否则让你重新输入密码. 如果刚安装好MYSQL,超级用户root是没有密码的,故直接回车即可进入到MYSQL中了,MYSQL的提示符是: mysql> 2.连接到远程主机上的MYSQL.假设远程主机的IP为:11