mysql创建表

32_分库分表概述 配置mycat

被刻印的时光 ゝ 提交于 2020-02-04 13:42:44
版本:5.7.28 1.搭建mycat 分片服务器 数据库主机 192.168.4.54 使用db1库存储数据 数据库主机 192.168.4.55 使用db2库存储数据 主机 192.168.4.56 运行mycat服务,逻辑库名称为test,连接用户名为admin,密码123456 主机 192.168.4.53 访问测试配置 1.1 在54(主机c1)和55(主机c2)上面分别创建db1和db2库 mysql> create database db1; //c1上面创建db1库 mysql> create database db2; //c2上面创建db2库 1.2 54 55 都授权 mysql> grant all on *.* to admin@"%" identified by "123456"; 1.3 修改数据库的配置文件(54 55) 注意:1代表不区分表名的大小写,0为区分大小写 ]# vim /etc/my.cnf [mysqld] lower_case_table_names=1 //表名忽略大小写 ]# systemctl restart mysqld 1.4 在56主机上面安装JDK ]# rpm -qa | grep -i jdk //安装自带的即可 ]# yum -y install java-1.8.0-openjdk 1.5

索引与优化

≡放荡痞女 提交于 2020-02-02 02:02:19
参考: http://blog.csdn.net/xluren/article/details/32746183 http://www.cnblogs.com/hustcat/archive/2009/10/28/1591648.html 关于MySQL索引的好处,如果正确合理设计并且使用索引的MySQL是一辆兰博基尼的话,那么没有设计和使用索引的MySQL就是一个人力三轮车。对于没有索引的表,单表查询可能几十万数据就是瓶颈,而通常大型网站单日就可能会产生几十万甚至几百万的数据,没有索引查询会变的非常缓慢。还是以WordPress来说,其多个数据表都会对经常被查询的字段添加索引,比如wp_comments表中针对5个字段设计了BTREE索引。 一个简单的对比测试 以我去年测试的数据作为一个简单示例,20多条数据源随机生成200万条数据,平均每条数据源都重复大概10万次,表结构比较简单,仅包含一个自增ID,一个char类型,一个text类型和一个int类型,单表2G大小,使用MyIASM引擎。开始测试未添加任何索引。 执行下面的SQL语句: 1 mysql> SELECT id,FROM_UNIXTIME( time ) FROM article WHERE a.title= '测试标题' 查询需要的时间非常恐怖的,如果加上联合查询和其他一些约束条件,数据库会疯狂的消耗内存

MySQL 如何生成日期表

跟風遠走 提交于 2020-02-01 01:01:23
在开发过程中,经常会遇到统计问题,通常交易信息都不是连续的,此时,统计出来的数据都是不连续的,所以提前生成一个时期表,当没有交易数据的时候填充0,就可以了,下面是生成日期表的步骤 1、创建一个num表,用来存储数字0~9 1 CREATE TABLE num (i int); 结果如下: 2、在num表中生成0~9 1 -- CREATE TABLE num (i int); 2 INSERT INTO num (i) VALUES (0), (1), (2), (3), (4), (5), (6), (7), (8), (9); 结果如下: 3、生成一个存储日期的表,datalist是字段名 -- CREATE TABLE num (i int); -- INSERT INTO num (i) VALUES (0), (1), (2), (3), (4), (5), (6), (7), (8), (9); CREATE TABLE if not exists calendar(datelist date); 结果如下: 4、生成并插入日期数据 1 -- CREATE TABLE num (i int); 2 -- INSERT INTO num (i) VALUES (0), (1), (2), (3), (4), (5), (6), (7), (8), (9); 3 --

mysql表相关操作

白昼怎懂夜的黑 提交于 2020-01-31 00:12:36
表的完整性约束 约束条件与数据类型的宽度一样,都是可选参数 作用:用于保证数据的完整性和一致性 主要分为: not null 标识该字段不能为空 default 为该字段设置默认值 unsigned 无符号 zerofill 使用0填充 auto_increment 标识该字段的自动增长(整数类型,而且为主键) primary key 标识该字段为该表的主键,可以唯一的标识记录 foreign key 标识该字段为该表的外键 unique key 标识该字段的值是唯一的 一、not null与default create table t1( id int primary key auto_increment, name varchar(16) not null, sex enum(‘nale’,’female’) not null default ‘male’ ); Insert into t1(name) values(‘egon’),(‘lxx’),(‘alex’); 二、unique key create table t2(x int unique); create table t3( x int, y varchar(5), unique key(x) ); create table t4( x int, y varchar(5), constraint uni_x

mysql必知必会--联 结 表

依然范特西╮ 提交于 2020-01-30 23:18:48
联结 SQL最强大的功能之一就是能在数据检索查询的执行中联结(join) 表。联结是利用SQL的 SELECT 能执行的最重要的操作,很好地理解联结 及其语法是学习SQL的一个极为重要的组成部分 外键(foreign key) 外键为某个表中的一列,它包含另一个表 的主键值,定义了两个表之间的关系 关系数据库的可伸缩性远比非关系数据库要好 可伸缩性(scale) 能够适应不断增加的工作量而不失败。设 计良好的数据库或应用程序称之为可伸缩性好(scale well) 为什么要使用联结 正如所述,分解数据为多个表能更有效地存储,更方便地处理,并 且具有更大的可伸缩性。但这些好处是有代价的。 如果数据存储在多个表中,怎样用单条 SELECT 语句检索出数据? 答案是使用联结。简单地说,联结是一种机制,用来在一条 SELECT 语句中关联表,因此称之为联结。使用特殊的语法,可以联结多个表返 回一组输出,联结在运行时关联表中正确的行 维护引用完整性 重要的是,要理解联结不是物理实体。换句 话说,它在实际的数据库表中不存在。联结由MySQL根据需 要建立,它存在于查询的执行当中 创建联结 联结的创建非常简单,规定要联结的所有表以及它们如何关联即可 现在来看 FROM 子句。与以前的 SELECT 语句不一样,这条语句的 FROM 子句列出了两个表,分别是 vendors 和 products

涂抹mysql笔记-管理mysql库和表

允我心安 提交于 2020-01-30 19:21:15
mysql的表对象是基于库维护的,也就是说它属于某个库,不管对象是由谁创建的,只要库在表就在。这根Oracle不同Oracle中的表对象是基于用户的。属于创建改对象的用户所有,用户在表就在。 mysql中的数据库(database)和Oracle数据库中的数据库概念不同。每个mysql都是由多个数据库组成(创建好默认4个)而Oracle中的数据库则是一个整体。 mysql默认的4个库 information_schema :记录用户、表、视图等元素信息、提供类似oracle的数据字典功能,类似于oracle数据库的system表空间。值得关注的是这个库是个特例,它是虚拟出来的库,是由mysql实例构建和维护的,其对象都保存在内存中。也就是说在磁盘上找不到对应的物理存在,因为它是虚拟的。那么用户也无法再该库下创建对象。甚至是root身份用户也不行,该库只能查询。而且该库中的对象在用户权限上面也非常特别。 mysql :记录用户权限、帮助、日志等信息,提供类似oracle数据字典功能,类似于oracle数据库中的system和sysaux表空间。 performance_schema :mysql服务性能指标库提供类似oracle数据库中v$类视图和数据字典功能。5.5引入的 test:测试库可以删除掉 show databases; 显示当前连接用户拥有访问权限的数据库

mysql添加索引(建表之后)

冷暖自知 提交于 2020-01-30 18:55:11
一.使用ALTER TABLE语句创建索引 语法如下: alter table table_name add index index_name (column_list) ; alter table table_name add unique (column_list) ; alter table table_name add primary key (column_list) ; 其中包括普通索引、UNIQUE索引和PRIMARY KEY索引3种创建索引的格式,table_name是要增加索引的表名,column_list指出对哪些列进行索引,多列时各列之间用逗号分隔。索引名index_name可选,缺省时,MySQL将根据第一个索引列赋一个名称。另外,ALTER TABLE允许在单个语句中更改多个表,因此可以同时创建多个索引。 二.使用CREATE INDEX语句对表增加索引 能够增加普通索引和UNIQUE索引两种。其格式如下: create index index_name on table_name (column_list) ; create unique index index_name on table_name (column_list) ; 说明:table_name、index_name和column_list具有与ALTER TABLE语句中相同的含义

mysql在建表语句中添加索引

耗尽温柔 提交于 2020-01-30 18:54:46
普通索引创建 创建普通索引,即不添加 UNIQUE、FULLTEXT 等任何参数。 【例】创建表名为 score 的数据表,并在该表的 id 字段上建立索引,SQL 语句如下: CREATE table score( id int(11) AUTO_INCREMENT primary key not null, name varchar(50) not null, math int(5) not null, English int (5) not null, Chinese int (5) not null, index(id) ); 此时在id字段上建立的普通索引名字为id,在id字段建立的,索引方法为BTREE,索引类型为normal 创建唯一索引 创建唯一索引时,使用 UNIQUE 参数进行约束。 【例】创建表名为 address 的数据表,并在该表的 id 字段上建立唯一索引,SQL 语句如下: CREATE table address( id int(11) auto_increment primary key not null, name varchar(50), address varchar(200), UNIQUE INDEX address(id ASC) ); 此时在id字段上建立的唯一索引,索引名字为address,索引方法BTREE为

mysql互换表中两列数据方法

二次信任 提交于 2020-01-30 18:54:28
1.创建表及记录用于测试 CREATE TABLE product ( id int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '产品id', name varchar(50) NOT NULL COMMENT '产品名称', original_price decimal(5,2) unsigned NOT NULL COMMENT '原价', price decimal(5,2) unsigned NOT NULL COMMENT '现价', PRIMARY KEY ( id ) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; INSERT INTO product ( id , name , original_price , price ) VALUES (NULL, '雪糕', '5', '3.5'), (NULL, '鲜花', '18', '15'), (NULL, '甜点', '25', '12.5'), (NULL, '玩具', '55', '45'), (NULL, '钱包', '285', '195'); mysql> select * from product; +----+--------+----------------+--------+ | id | name | original

mysql 删除表中记录

烂漫一生 提交于 2020-01-30 09:08:47
一、清除mysql表中数据 delete from 表名; truncate table 表名; 不带where参数的delete语句可以删除mysql表中所有内容,使用truncate table也可以清空mysql表中所有内容。 效率上truncate比delete快,但truncate删除后不记录mysql日志,不可以恢复数据。 delete的效果有点像将mysql表中所有记录一条一条删除到删完, 而truncate相当于保留mysql表的结构,重新创建了这个表,所有的状态都相当于新表。 二、删除表中的某些数据 delete from命令格式:delete from 表名 where 表达式 例如,删除表 MyClass中编号为1 的记录: 复制代码 代码如下: mysql> delete from MyClass where id=1; 三、修改表 1.选择数据库 >use 数据库名; 2.查询所有数据表 >show tables; 3.查询表的字段信息 >desc 表名称; 来源: https://www.cnblogs.com/hehexu/p/7898701.html