sql数据库

day62:mysql主从配置

人走茶凉 提交于 2020-03-02 10:50:19
1、主从介绍: mysql主从又叫Replication,AB两台机器复制,也就是说是AB两台机器做了主从后,在A机器上写数据,另一台B机器也会跟中写数据,两者数据实时同步: mysql主从是基于 binlog ,主上必须开启 binlog 才能进行主从:binlog是一个 二进制的日记文件 : mysql主从的过程步骤 : 1:主将更改操作记录(增删改)到 binlog 里: 2:从将主的 binlog事件 ( SQL语句 )同步到从本机并记录 relaylog 中: 3:从根据 relaylog 里面的语句按数据严格执行: 注释: 主从过程涉及到三个线程, 主(logdump线程) 从(I/O线程、SQL线程) 主上 有一个 线程(logdump) 用来和从的 I/O线程 传递binlog: 从上有两个线程: I/O线程 用来同步主的binlog至本机并生成 relaylog : SQL线程 用来把r elaylog里的sql语句 按数据执行: 附记: master主会把操作记录到binlog中,通过线程dumplog和从线程I/O线程传递binlog,从通过线程I/O收到binlog后至本机生成relaylog,并通过线程SQL来按顺序执行relaylog里的sql语句: 应用场景 : 1、 用于备份重要数据:(仅仅只作为备份):主机器宕机,从机器还能随时对web提供服务:

SQL Server数据库碎片

荒凉一梦 提交于 2020-03-02 07:54:32
当索引所在页面的基于主关键字的逻辑顺序,和数据文件中的物理顺序不匹配时,碎片就产生了。所有的叶级页包含了指向前一个和后一个页的指针。这样就形成一个双链表。理想情况下,数据文件中页的物理顺序会和逻辑顺序匹配。整个磁盘的工作性能在物理顺序匹配逻辑顺序时将显著提升。对某些特定的查询而言,这将带来极佳的性能。当物理排序和逻辑排序不匹配时,磁盘的工作性能会变得低效,这是因为磁头必须向前和向后移动来查找索引,而不是只象某个单一方向来搜索。碎片会影响I/O性能,不过对于位于SQL Server数据缓冲内的数据页而言,碎片并不会带来任何影响。 在索引碎片整理前,请确保系统资源的一些问题,比如物理磁盘碎片,不合理的基础结构等因素会给性能带来负面影响,参看KB935089: 使用 Defrag 管理器可以 such as Exchange Server 或 SQL Server 数据库服务器的卷进行碎片整理 。 DBCC SHOWCONTIG是显示指定的表的数据和索引的碎片信息。当运行该命令时,要特别注意逻辑碎片(Logical Fragmentation)和页密度(Page Density)两个指标。 Page Scanned-扫描页数: 如果你知道行的近似尺寸和表或索引里的行数,那么你可以估计出索引里的页数。看看扫描页数,如果明显比你估计的页数要高,说明存在内部碎片。 Extents

Java Web----Java Web的数据库操作(一)

≡放荡痞女 提交于 2020-03-02 06:26:11
Java Web的数据库操作 一、JDBC技术 1、JDBC简介 JDBC是Java程序与数据库系统通信的标准API,它定义在JDK的API中,通过JDBC技术,Java程序可以非常方便地与各种数据库交互,JDBC在Java程序与数据库系统之间假期了一座桥梁。 JDBC由一组用Java语言编写的类和接口组成,它对数据库的操作提供了基本方法,但由于数据库种类跟多且多有不同,所以对数据库的细节操作由数据库厂商进行实现,且厂商需要提供数据库的驱动程序,下图为Java程序与数据库相交互的示意图: 2、JDBC连接数据库的过程 l 下载驱动包 在JDK中,不包含数据库的驱动程序,使用JDBC操作数据库需要实现下载数据库厂商提供的驱动包,并导入到开发环境中。 l 注册数据库驱动 连接数据库前,需要将数据库厂商提供的数据库驱动注册到JDBC的驱动管理器中,一般是通过将数据库驱动类加载到JVM来实现的,例如连接MYSQL数据库: Class.forName(“com.mysql.jdbc.Driver”); l 构建数据库连接URL URL由数据库厂商制定,不同数据库它的URL有所区别,但都符合一个基本的格式,即“JDBC协议+IP地址或域名+端口+数据库名称”,例如MYSQL数据库为”jdbc:mysql://localhost:8080/test”。 前两步中不同数据库有所差别

pandas操作excel操作-20-操作数据库-复杂函数的使用

核能气质少年 提交于 2020-03-01 23:40:17
读取数据库 import pandas as pd import pyodbc import sqlalchemy connection = pyodbc.connect('{driver_url}') engine = sqlalchemy.create_engine('{driver_url}') query_sql = 'select * from user' df1 = pd.read_sql_query(query_sql, connection) df2 = pd.read_sql_query(query_sql, engine) 复杂函数的使用,结构化编写复杂函数 import pandas as pd import numpy as np def get_circumcircle_area(l, h): r = np.sqrt(l ** 2 + h ** 2)/2 return r ** 2 * np.pi def wrapper(row): return get_circumcircle_area(row['Length'], row['Height']) rects = pd.read_excel('C:/rects.xlsx', index_col='ID') rects['CA'] = rects.apply(wrapper, axis=1) print

图片服务器——实现阶段(数据库实现)

丶灬走出姿态 提交于 2020-03-01 22:44:59
一、封装数据库操作 创建DBUtil类,创建一个单例类辅助创建连接,其中URL为数据库连接字符串,用户名,密码都是固定的。 private static final String URL = "jdbc:mysql://127.0.0.1:3306/image_server? characterEncoding=utf8&useSSL=true" private static final String USERNAME = "root"; private static final String PASSWORD = "1002"; 这个类主要包含三个方法 // 这是一个获取单例的方法 public static DataSource getDataSource() { } // 获取链接 public static Connection getConnection() { } // 关闭链接 public static void close(Connection conn, PreparedStatement statement, ResultSet resultSet) {} 类的实现代码 public class DBUtil { private static final String URL = "jdbc:mysql://127.0.0.1:3306/image

根据多年经验整理的《互联网MySQL开发规范》

烂漫一生 提交于 2020-03-01 19:26:39
写在前面:无规矩不成方圆。对于刚加入互联网的朋友们,肯定会接触到 MySQL , MySQL 作为互联网最流行的关系型数据库产品,它有它擅长的地方,也有它不足的短板,针对它的特性,结合互联网大多应用的特点,笔者根据自己多年互联网公司的 MySQL DBA 经验,现总结出互联网 MySQL 的一些开发规范,仅供参考。 一、基础规范 (1) 使用 INNODB 存储引擎 (2) 表字符集使用 UTF8 (3) 所有表都需要添加注释 (4) 单表数据量建议控制在 5000W 以内 (5) 不在数据库中存储图 ⽚ 、文件等大数据 (6) 禁止在线上做数据库压力测试 (7) 禁 ⽌ 从测试、开发环境直连数据库 二、命名规范 (1) 库名表名字段名必须有固定的命名长度, 12 个字符以内 (2) 库名、表名、字段名禁 ⽌ 止超过 32 个字符。须见名之意 (3) 库名、表名、字段名禁 ⽌ 止使 ⽤ 用 MySQL 保留字 (4) 临时库、表名必须以 tmp 为前缀,并以 ⽇ 日期为后缀 (5) 备份库、表必须以 bak 为前缀,并以日期为后缀 三、库、表、字段开发设计规范 (1) 禁 ⽌ 使用分区表 (2) 拆分大字段和访问频率低的字段,分离冷热数据 (3) 用 HASH 进 ⾏ 散表,表名后缀使 ⽤⼗ 进制数,下标从 0 开始 (4) 按日期时间分表需符合 YYYY[MM][DD][HH]

sql --mysql主从复制

生来就可爱ヽ(ⅴ<●) 提交于 2020-03-01 15:58:29
基于windows平台,mysql版本mysql-5.7.14-winx64,步骤如下 ###1.创建两个mysql实例 详见 https://my.oschina.net/u/2312022/blog/747955 ###2.查看mysql官网 http://dev.mysql.com/doc/refman/5.7/en/replication.html ###3.配置master http://dev.mysql.com/doc/refman/5.7/en/replication-howto-masterbaseconfig.html 我的配置如下 [mysqld] # Remove leading # and set to the amount of RAM for the most important data # cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%. # innodb_buffer_pool_size = 128M # Remove leading # to turn on a very important data integrity option: logging # changes to the binary log between backups. #

SQL总结

你。 提交于 2020-03-01 14:40:36
概要 SQL的增删改查操作的对象是数据库表中的记录 SQL语句的要素: 一是指明具体操作的关键字,insert、delete、update、select; 二是表名,缩小目标记录的范围; 三是条件表达式,对表中记录进行筛选,还可以对筛选出的结果进一步筛选; 四是操作的具体内容,查询和删除不需要指明操作内容,插入和更新需要指明具体的列名和值。 SQL增删改查的重点在于使用条件表达式对记录进行筛选 增删改查四种操作: 按是否对数据库数据有影响,可以分为查和增删改 按操作的记录是已经存在或不存在的,可以分为插入和删改查 按操作表的数量可以分为单表操作和多表操作 条件表达式对插入操作并不适用:insert语句操作的不是已经存在的记录,所有不需要对记录进行筛选的条件表达式,所以insert语句不能带where子句,insert语句可以结合IF、ELSE、NOT等结构实现条件插入。 该总结以MySQL为准,不同数据库系统之间存在差异 四种基本操作(单表不带条件) select语句 select 列名,列名 from 表名 select 列名 as 别名 from 表名 select * from 表名 select distinct 列名 from 表名 insert语句 insert into 表名 values (值,值......) insert into 表名 (列名,列名......

SQL Server查询大数据结果集

ⅰ亾dé卋堺 提交于 2020-03-01 10:55:22
通常,当 Microsoft JDBC Driver for SQL Server 执行查询时,驱动程序会将服务器中的所有结果检索到应用程序内存中。尽管这种方法可以最大程度地减少 SQL Server 上的资源占用,但它可能会在 JDBC 应用程序中针对生成非常大的结果的查询引发 OutOfMemory (OOM)错误 。 查询二进制对象或者海量数据(本文桐城大数据)的结果集时,查询的响应时间更长,更容易出现OOM的问题, SQL Server 作为成熟的数据库,有自己的解决方式,本文主要讨论java中的实现: 一、通过数据库游标的方式,控制结果集的每次返回的结果大小, 来降低大数据查询的资源消耗和响应时间 : 1.使用SQL Server JDBC的URL为 selectMethod=cursor类型(默认 selectMethod= direct): String url="jdbc:sqlserver://127.0.0.1;databaseName=lyy;selectMethod=cursor"; 这种方式会对所有使用该url的连接下的所有查询起作用,可能引起其他普通情况的读取性能下降。 2.设置Fetch Size,要想该设置起效必须使用 SQLServerResultSet.TYPE_SS_SERVER_CURSOR_FORWARD_ONLY类型的Statement:

【转帖】四种优秀的数据库设计工具

感情迁移 提交于 2020-03-01 07:46:19
四种优秀的数据库设计工具 https://database.51cto.com/art/202002/611381.htm 【51CTO.com快译】众所周知,良好的数据库设计能够大幅减少后期的运维工作,同时也能最大程度地减少软件项目出错的可能。由于我们所面临的真实项目需求往往五花八门,因此需要找到合适的设计工具,来实现事半功倍的效果。 本文将从如下四个方面和您一起比较四种优秀数据库设计工具的各自优缺点。 用户界面 可支持的数据库 数据工具 售价 1.DbSchema 官网: https://dbschema.com/ DbSchema是一种可用于复杂数据库设计和管理的可视化工具。该工具已经集成在大多数主流操作系统之中。 用户界面 DbSchema具有友好的用户界面,可简化数据库的设计。它能够为管理大型数据库提供友好的界面布局,以便用户更专注于数据库的特定功能。 如下图所示,DbSchema界面能够让用户自由地浏览各种视图,在布局中拖放表格,或通过双击的方式来编辑表格中的数据。 逆向工程 DbSchema可以轻松地对现有数据库的架构模式(schema)进行反向工程。 项目文件和架构模式同步 DbSchema将本地的模式设计保存到一个项目文件之中。使用此类项目文件,用户在无需连接数据库的情况下,直接修改目标架构模式的设计。这些更改将会被保存在对应的项目文件中。当再次与数据库连接时