mysql数据库

Linq to MySQL 存储的使用

谁都会走 提交于 2020-01-10 10:42:01
下面主要介绍 Linq to MySQL (ALinq for MySQL),如果你还不知道 ALinq 是什么, 请点击这里 。 完整的 Sample 位于 ALinq 的安装目录下的子目录 Samples\CSharpe\OracleSamples.zip 或 Samples\VB\OracleSamples.zip 。 Sample 的使用:打开该工程,然后运行 Sample3_StoreProcedure ,然后点击 Create Procedure 按钮创建存储过程。 示例1: 步骤一:在数据库中创建存储过程,下面这个存储过程是用来添加一个 Category 到数据库中。 CREATE PROCEDURE ADD_CATEGORY(IN CATEGORY_NAME VARCHAR(30), IN CATEGORY_DESCRIPTION TEXT)BEGININSERT INTO CATEGORIES (CategoryName, Description)Values (category_name, category_description);END 步骤二:将存储过程映射到 DataContext 实体类中的方法函数。 [Function(Name = "ADD_CATEGORY")]public void AddCategory( [Parameter(Name =

Mysql Partition分区(理论)

落花浮王杯 提交于 2020-01-10 10:41:42
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> Partition 分区 MySql 5.6 手册: http://dev.mysql.com/doc/refman/5.6/en/partitioning.html 我理解的分区 举个例子, 操作系统中的分区,是将硬盘根据大小进行逻辑分区,就是我们看到的C、D、E、F盘,逻辑分区还是在同一个操作系统中。数据库产品的Partition分区也是一样的道理,将数据进行逻辑分区,对数据划分界限。 分区类型 MySql 支持Range,List,Hash,Key。最长用的是Range。 注意不同的版本对分区类型的支持有些不同! Range:范围 CREATE TABLE employees ( id INT NOT NULL, fname VARCHAR(30), lname VARCHAR(30), hired DATE NOT NULL DEFAULT '1970-01-01', separated DATE NOT NULL DEFAULT '9999-12-31', job_code INT NOT NULL, store_id INT NOT NULL ) PARTITION BY RANGE (store_id) ( PARTITION p0 VALUES LESS THAN (6), PARTITION

容易理解的mysql分区

走远了吗. 提交于 2020-01-10 10:18:00
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> InnoDB逻辑存储结构   首先要先介绍一下InnoDB逻辑存储结构和区的概念, 它的所有数据都被逻辑地存放在表空间,表空间又由段,区,页组成。 段 段就是上图的segment区域,常见的段有数据段、索引段、回滚段等,在InnoDB存储引擎中,对段的管理都是由引擎自身所完成的。 区   区就是上图的extent区域, 区是由连续的页组成的空间,无论页的大小怎么变,区的大小默认总是为1MB。 为了保证区中的页的连续性,InnoDB存储引擎一次从磁盘申请4-5个区,InnoDB页的大小默认为16kb,即一个区一共有64(1MB/16kb=16)个连续的页。每 个段开始,先用32页(page)大小的碎片页来存放数据,在使用完这些页之后才是64个连续页的申请。这样做的目的是,对于一些小表或者是undo类的段,可以开始申请较小的空间,节约磁盘开销。 页   页就是上图的page区域,也可以叫块。 页是InnoDB磁盘管理的最小单位。 默认大小为16KB,可以通过参数innodb_page_size来设置。常见的页类型有:数据页,undo页,系统页,事务数据页,插入缓冲位图页,插入缓冲空闲列表页,未压缩的二进制大对象页,压缩的二进制大对象页等。 分区概述 分区    这里讲的分区,此“区”非彼“区”

[原]MySQL错误“Specified key was too long; max key length is 1000 bytes”的解决办法

北城余情 提交于 2020-01-10 09:51:39
MySQL错误“Specified key was too long; max key length is 1000 bytes”的解决办法 经过查询才知道,是Mysql的字段设置的太长了,于是我把这两个字段的长度改了一下就好了。 建立索引时,数据库计算key的长度是累加所有Index用到的字段的char长度后再按下面比例乘起来不能超过限定的key长度1000: latin1 = 1 byte = 1 character uft8 = 3 byte = 1 character gbk = 2 byte = 1 character 举例能看得更明白些,以GBK为例: CREATE UNIQUE INDEX `unique_record` ON reports (`report_name`, `report_client`, `report_city`); 其中report_name varchar(200), report_client varchar(200), report_city varchar(200) (200 + 200 +200) * 2 = 1200 > 1000,所有就会报1071错误,只要将report_city改为varchar(100)那么索引就能成功建立。 如果表是UTF8字符集,那索引还是建立不了。 网上代写程序员推荐 来源: https://www

MySQL错误“Specified key was too long; max key length is 1000 bytes”的解决办法

橙三吉。 提交于 2020-01-10 09:50:39
今天在为数据库中的某两个字段设置unique索引的时候,出现了Specified key was too long; max key length is 1000 bytes错误,经过查询才知道,是Mysql的字段设置的太长了,于是我把这两个字段的长度改了一下就好了。 建立索引时,数据库计算key的长度是累加所有Index用到的字段的char长度后再按下面比例乘起来不能超过限定的key长度1000: latin1 = 1 byte = 1 character uft8 = 3 byte = 1 character gbk = 2 byte = 1 character 举例能看得更明白些,以GBK为例: CREATE UNIQUE INDEX `unique_record` ON reports (`report_name`, `report_client`, `report_city`); 其中report_name varchar(200), report_client varchar(200), report_city varchar(200) (200 + 200 +200) * 2 = 1200 > 1000,所有就会报1071错误,只要将report_city改为varchar(100)那么索引就能成功建立。 如果表是UTF8字符集,那索引还是建立不了 来源: https

MySQL错误“Specified key was too long; max key length is 1000 bytes”的解决办法

|▌冷眼眸甩不掉的悲伤 提交于 2020-01-10 09:50:07
MySQL错误“Specified key was too long; max key length is 1000 bytes”的解决办法 经过查询才知道,是Mysql的字段设置的太长了,于是我把这两个字段的长度改了一下就好了。 建立索引时,数据库计算key的长度是累加所有Index用到的字段的char长度后再按下面比例乘起来不能超过限定的key长度1000: latin1 = 1 byte = 1 character uft8 = 3 byte = 1 character gbk = 2 byte = 1 character 举例能看得更明白些,以GBK为例: CREATE UNIQUE INDEX `unique_record` ON reports (`report_name`, `report_client`, `report_city`); 其中report_name varchar(200), report_client varchar(200), report_city varchar(200) (200 + 200 +200) * 2 = 1200 > 1000,所有就会报1071错误,只要将report_city改为varchar(100)那么索引就能成功建立。 如果表是UTF8字符集,那索引还是建立不了。 来源: https://www.cnblogs.com

Mysql——主从复制

微笑、不失礼 提交于 2020-01-10 08:20:24
文章目录 一、什么是主从复制 二、主从复制应用场景 三、MySQL主从复制的类型 四、主从复制的工作过程 五、主从复制示例 1、主服务器配置 2、从服务器(slave 1)配置 3、从服务器(slave 2)配置 4、主从复制验证 一、什么是主从复制 MySQL 主从复制是指数据可以从一个MySQL数据库服务器主节点复制到一个或多个从节点。MySQL 默认采用异步复制方式,这样从节点不用一直访问主服务器来更新自己的数据,数据的更新可以在远程连接上进行,从节点可以复制主数据库中的所有数据库或者特定的数据库,或者特定的表。 二、主从复制应用场景 在企业网站中,后端MySQL数据库只有一台时,会存在以下问题: 单点故障,服务不可用 无法处理大量的并发数据请求(导致效率慢,访问超时) 数据丢失 解决方案: 增加MySQL数据库服务器,对数据进行备份,形成主备 确保主备MySQL数据库服务器数据是一样的 主服务宕机了,备份服务器继续工作,数据有保障 解决方案(高级): MySQL主从复制与读写分离是密切相关的 通过主从复制的方式来同步数据,再通过读写分离来提升数据库的并发负载能力 三、MySQL主从复制的类型 基于语句的复制(默认) 在主服务器上执行的语句,从服务器执行同样的语句 基于行的复制 把改变的内容复制到从服务器 混合类型的复制 一旦发现基于语句无法精确复制时,就会采用基于行的复制

MySQL数据库设计规范感悟

╄→гoц情女王★ 提交于 2020-01-10 08:07:48
前言 在设计关系型数据库时,我们从课上的学习得知,需要参照不同的范式及原则,设计表结构与表关系。在课上,我们关注的角度更多是,设计要符合范式,保证数据不冗余。但在实际的开发设计中,我们往往要从更多角度思考数据库的设计原则,根据不同的需求场景,进行不同角度的侧重。比如开发是否便捷,表结构是否易维护,查询效率是否达到要求等等。 设计原则 一般的企业级应用数据库中,对于数据的冗余是有一定容忍性的,但对于数据库增删改查的效率,往往会有很高的要求。这时候,我们之前遵循的一些原则,就要做出不同程度的改变。比如,之前依据少冗余原则,参考的设计三大范式,可能在数据库增删改查效率的面前,就要做一些妥协了。 在设计能容忍冗余、重视效率的数据库时,个人认为,主要需要考虑以下几方面: 中间表不可以随意使用 在充分遵循三大范式的前提下,我们的设计就会有很多的中间表(关系表)。但如果在两个表中,其中有一个表增删改频繁,那么从效率角度而言,这样的设计就是不合格的。这样的设计确实会减少很多数据冗余,但是也会大大增加每条数据增删改的开销。所以从一般的企业级应用场景来看,中间表不可以随意使用。 通过了解中间表的使用缺陷,我们也就知道了什么时候可以使用中间表。当左表和右表都没有非常频繁的改动需求,但有非常频繁的联表查询需求的时,我们就可以运用中间表,来提升查询效率,并减少数据冗余。 每个表增删改的范围尽量都在本表进行

Linux 部署应用程序

99封情书 提交于 2020-01-10 07:44:17
安装 Java 解压缩并移动到指定目录 解压缩: tar -zxvf jdk-8u152-linux-x64.tar.gz 创建目录: mkdir -p /usr/local/java 移动安装包: mv jdk1.8.0_152/ /usr/local/java/ 设置所有者: chown -R root:root /usr/local/java/ 配置环境变量 配置系统环境变量: vi /etc/environment 修改系统环境变量 PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games" export JAVA_HOME=/usr/local/java/jdk1.8.0_152 export JRE_HOME=/usr/local/java/jdk1.8.0_152/jre export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib 配置用户环境变量: vi /etc/profile 修改用户环境变量 if [ "$PS1" ]; then if [ "$BASH" ] && [ "$BASH" != "/bin/sh" ]; then # The file bash

手动搭建php环境

痴心易碎 提交于 2020-01-10 05:58:31
php手动搭建环境有好多种组合,版本号不一致,会导致搭建失败。 我搭建的组合是: php5.6+MySQL5.6+Apache2.4的组合。 一、PHP语言包下载 首先从官网上下载php5.6 http://windows.php.net/download#php-5.6 选择完整版下载: 二、 Apache服务器下载 首先从官网上下载Apache2.4 http://httpd.apache.org/download.cgi 进入第二个界面,选择第二个选项: 根据电脑的不同,选择相应的位数: 注意有句话: 大体意思是,配置好Apache之后,要运行ApacheMonitor.exe,可能会报缺少dll文件,如果报缺少文件,需要下载这个软件。 下载好Apache2.4之后继续下载MySQL 5.6。 三、MySQL 5.6服务的下载。 我使用的是mysql5.6.17这个版本 官网下载地址: https://dev.mysql.com/doc/relnotes/mysql/5.6/en/news-5-6-17.html 可能官网下载会比较慢,也可以直接网上找。 这个文件有两种,一种是安装版(msi结尾的文件),还有一种是免安装版(zip结尾的文件) 两种都可以。 注意:之前数据库里有东西最好备份一下 我使用的是免安装版,自己觉得这个版本产生的错误比较少。下面介绍免安装版的配制方法: