首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

粗聊Mysql——你会么?

本文中说到的“”,并非单纯的一个库,或是一张,而是你建好的库在项目的运营中,是否能应付各种事件,下面我说说几个我在项目中遇到的问题以及处理的方法,算是一个小小的心得,给大家分享下。...比如现在有2张,一张新闻栏目,一张新闻,现在两张需要进行关联,我想大多数人的做法肯定是在新闻表里一个新闻栏目id,然后把新闻栏目表里的主键ID(自增)写到这个字段里,通过这样进行两关联。   ...所以我建议两之间关联不用主键,而是单独一个编号的字段,我们这里可以用mysql的uuid()函数做为编号,相关文献可以参考《UUID做主键好还是不好》,只所以一张要2个主键,一个物理主键(自增id...至于性能,我本地测了下基本上没差异,网上也有人做了10W条数据的测试——《实测MYSQL UUID性能》。...所以我建议,既然定义为varchar,就代表不会涉及到计算,何不干脆定义一个通用的长度,比如varchar(50),如果真要限制长度,用程序去判断,不要让数据库来限制,不然用户输了一长串,结果mysql

5.2K10
您找到你想要的搜索结果了吗?
是的
没有找到

一个MySQL需求的讨论引导

经过进一步的沟通,我们再次挖掘需求,对于里面的数据是如何处理的,业务同学说其实中的数据如果时间长了之后是需要考虑数据清理的,所以按照这种模式,这个需求的就基本清晰了,初始需求有比较大的差异。...所以最后经过讨论评估,其实没有必要在中间件环境中进行该类业务的处理,相比而言,性价比也不高。...通过这样一个看起来简单的需求的沟通挖掘,最后产生了不同的解决方案,对于业务侧来说还是比较满意的,至少能够超出他们的基本需求期望实现,而且很多细节的工作也不需要更多的人工参与后期讨论,大大减少了沟通的边际成本...各大平台都可以找到我 微信公众号:杨荣的学习笔记 Github:@jeanron100 CSDN:@jeanron100 知乎:@jeanron100 头条号:@杨荣的学习笔记 网易号:@杨荣的数据库笔记...大鱼号:@杨荣的数据库笔记 腾讯云+社区:@杨荣的学习笔记

2.7K20

mysql常见的选项和约束

sex char(1) default ‘m’ 当然,也可以在INSERTUPDATE语句中使用DEFAULT关键字显式地给列赋默认值: 函数default(column)可以得到一个列的默认值:select...约束主要是防止非法数据进入中,保证数据的正确性一致性,统称为数据完整性 约束也可以防止一个被删除 MySQL的约束保存在information_schema.table_constraints中...,可以通过该查询约束信息 常见的约束类型 not null非空,指定某列不为空(注意区分空空格的关系) unique:唯一约束,指定某列几列组合的数据不能重复 primary key:主键约束,指定某列的数据不能重复...Oracle中国可以使用check约束,有相应作用 mysql> create table test_ck( -> id int check(id>0) -> ); mysql...> insert into test_ck values(-100); mysql> select * from test_ck; +------+ | id | +------+ |

11910

hive并添加数据_hivemysql的关系

在使用hive进行开发时,我们往往需要获得一个已存在hive表语句(DDL),然而hive本身并没有提供这样一个工具。...要想还原DDL就必须从元数据入手,我们知道,hive的元数据并不存放在hdfs上,而是存放在传统的RDBMS中,典型的如mysql,derby等,这里我们以mysql为元数据库,结合0.4.2版本的...连接上mysql后可以看到hive元数据对应的约有20个,其中和结构信息有关的有9张,其余的10多张或为空,或只有简单的几条记录,以下是部分主要的简要说明。...Hive分区名(键值) PART_ID 除了上面几张外,还有两张非常有趣:NUCLEUS_TABLESSEQUENCE_TABLE NUCLEUS_TABLES中保存了元数据hive中class...有了上面的信息,再想获得hive的表语句已经是易如反掌了,这里提供一个已经开发好的脚本,使用shell开发,大家可以自由修改。注意:其中mysql连接信息请根据实际环境进行配置。

2.8K30

MySQL数据类型的选择

如果查询中包含可为 NULL 的列,对 MySQL 来说更难优化,因为可为 NULL 的列使得索引、索引统计值比较都更复杂。特别是计划在列上索引,就应该尽量避免设计成可为 NULL 的列。...MySQL 浮点型定点型可以用类型名称后加(M,D)来表示,M 表示该值的总共长度,D 表示小数点后面的长度。...(准确来说是 MySQL 4.1 以后的版本 varchar 不会删除存储数据的末尾空格) blob text 类型 blob text 都是为了存储很大的数据而设计的字符串数据类型,分别采用二进制字符方式存储...与其它类型不同,MySQL 把每个 blob text 值当作一个独立的对象处理。...枚举(enum)类型 MySQL 在内部会将每个值在列表中的位置保存为整数,并且在的 .frm 文件中保存 “数字-字符串” 映射关系的 “查找”。

5.2K10

MySQL库、、增删改查语句Demo

本页目录 库语句 库 修改库字符集 指定库排序规则 当前库状态的表语句 删除库 Navicat编辑数据库时执行的SQL 表语句 添加字段 修改 修改字段 修改表字符集、排序规则 截断 删除...添加索引 一直都是用MySQL可视化工具,几乎没碰过库、等语句了。...库语句 库 -- 数据库配置文件default-character-set是utf8_mb3,则会导致创建的是utf8mb3。...我们无法人为控制,只能库完毕后执行修改库字符集或者库前修改MySQL配置 CREATE DATABASE IF NOT EXISTS `school` DEFAULT CHARACTER SET...直接执行就行,没有参数 SELECT @@character_set_database, @@collation_database 表语句 添加字段 修改 修改字段 修改表字符集、排序规则 截断

5.1K40

hibernate自动

结构和数据总是在程序执行的时候无端的修改,折腾了好长时间,查了很长时间hibernate的数据库映射文件接口程序,始终没有发现有什么错误,到最后才发现了它!...SessionFactory is closed explicitly. eg. validate | update | create | create-drop 其实这个参数的作用主要用于:自动创建|更新|验证数据库结构...其它几个参数的意思: validate               加载hibernate时,验证创建数据库结构 create                  每次加载hibernate,重新创建数据库结构...create-drop        加载hibernate时创建,退出是删除结构 update                 加载hibernate自动更新数据库结构 如果发现数据库丢失或新增

1.6K10

MySQL数据库、优化、算法、分区分库分总结

一、主键设置 主键为什么不推荐有业务含义? 1、因为任何有业务含义的列都有改变的可能性,主键一旦带上了业务含义,那么主键就有可能发生变更。...如果您知道姓,电话簿将非常有用;如果您知道姓名,电话簿则更为有用,但如果您只知道名不知道姓,电话簿将没有用处。 什么情况下应不或少索引?...1、表记录太少 2、经常插入、删除、修改的 3、数据重复且分布平均的表字段,假如一个有10万行记录,有一个字段A只有TF两种值,且每个值的分布概率大约为50%,那么对这种A字段索引一般不会提高数据库的查询速度...六、Mysql 中 MyISAM InnoDB 的区别有哪些?...分区中无法使用外键约束 MySQL的分区适用于一个的所有数据索引,不能只对表数据分区而不对索引分区,也不能只对索引分区而不对表分区,也不能只对表的一部分数据分区。

5.3K31

SQL Server的设计(

3、标识符列 的序号,自动递增,具有三个特点: ·列的数据类型不能为小数类型 ·不允许控制null ·每个只能有一个标识符列 4、check约束 通过check约束可以限制域的完整性。...例如可以通过设置check约束限制输入的年龄、出生日期等数据 操作部分 ·图形化 1、首先展开以下节点-点击新建 2、SSMS会弹出一个的设计框 3、建立几个列,准备做操作 4、...·T-SQL语句 举个例子: create table name( StudentID varchar(10)NOT NULL, Sname varchar(10)DEFAULT NULL, sex...首先 create 是创建的意思,table即,name是给起的名字。后面跟上(),()内的内容就是的每一列;其中第一个字段为列的名字,然后是列的数据类型,后面的是否允许空值null。...操作时,我们点击SSMS左上角的“新建查询”-然后输入语句-点击“执行” 执行后可以看到 刷新一下“” 新建的名为“name”的就可以看到了

3.3K20
领券