首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

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

一、主键设置 主键为什么不推荐有业务含义? 1、因为任何有业务含义列都有改变可能性,主键一旦带上了业务含义,那么主键就有可能发生变更。...什么情况下应不或少索引?...1、表记录太少 2、经常插入、删除、修改 3、数据重复且分布平均表字段,假如一个有10万行记录,有一个字段A只有T和F两种值,且每个值分布概率大约为50%,那么对这种A字段索引一般不会提高数据库查询速度...EXPLAIN 查询结果还会告诉你你索引主键被如何利用,你数据是如何被搜索和排序 当只要一行数据时使用limit 1,MySQL数据库引擎会在找到一条数据后停止搜索,而不是继续往后查少下一条符合记录数据...包括primary key, unique key, foreign key 等 index是数据库物理结构,它只是辅助查询,它创建时会在另外空间(mysqlinnodb空间)以一个类似目录结构存储

5.2K31

mysql常见选项和约束

约束主要是防止非法数据进入中,保证数据正确性和一致性,统称为数据完整性 约束也可以防止一个被删除 MySQL约束保存在information_schema.table_constraints中...主键是用来唯一标识每一行,类型一般为整型或者字符串 具有主键约束列不允许有null值,不允许有重复值 每个最多只允许一个主键,可定义联合主键,主键名总是PRIMARY 联合主键 用几个列来进行唯一标识一行...,外键是构建于一个两个字段或者是两个两个字段之间参照关系 注意: 具有外键约束值不能随便给,必须满足外键所引用主键取值 一张中可以定义多个外键 外键列默认可以给null值 父子表...外键所在叫做子表,从 外键所引用主键所在叫做父,主表 constraint emp_deptid_fk foreign_key(deptid) references dept(deptid...Oracle中国可以使用check约束,有相应作用 mysql> create table test_ck( -> id int check(id>0) -> ); mysql

11410

MySQL数据类型选择

如果查询中包含可为 NULL 列,对 MySQL 来说更难优化,因为可为 NULL 列使得索引、索引统计和值比较都更复杂。特别是计划在列上索引,就应该尽量避免设计成可为 NULL 列。...MySQL 可以为整数类型指定宽度,例如 int(11),对大多数应用这是没有意义:它不会限制值合法范围,只是规定了 MySQL 一些交互工具(例如 MySQL 命令行客户端)用来显示字符个数。...char 类型是定长MySQL 总是根据定义字符串长度分配足够空间。 char 存储会删除存储数据末尾空格;varchar 不会。...与其它类型不同,MySQL 把每个 blob 和 text 值当作一个独立对象处理。...枚举(enum)类型 MySQL 在内部会将每个值在列表中位置保存为整数,并且在 .frm 文件中保存 “数字-字符串” 映射关系 “查找”。

5.2K10

mysql数据库(一):与新增数据建议收藏

创建 思考:如何把下面excel数据保存到数据库表里面 表语法: create table ( , , ......创建时候,声明字段时候,字段之间以什么符号分隔?符号用中文可以吗? 英文状态下逗号,不可以 2). 声明字段时候,最后一个字段后面需不需要逗号? 不需要 3). 主键特征是什么?...如果需要支持中文数据存储和显示,需要怎么做? 在末尾加上DEFAULT CHARSET=utf8; 6....时候每一个字段后面用什么符号分隔?最后一个字段后面需要分隔符吗? 逗号,不需要 2. 插入数据时,只初始化部分字段与初始化所有字段时sql不同点体现在哪里?...如果需要支持中文数据存储和显示,需要怎么做? 设置DEFAULT CHARSER=utf8; 九. 课后作业 一. 按照下面给出结构创建下面几个 二.

5.9K20

粗聊Mysql——你会么?

本文中说到”,并非单纯一个库,或是一张,而是你建好库和在项目的运营中,是否能应付各种事件,下面我说说几个我在项目中遇到问题以及处理方法,算是一个小小心得,给大家分享下。...比如现在有2张,一张新闻栏目,一张新闻,现在两张需要进行关联,我想大多数人做法肯定是在新闻表里一个新闻栏目id,然后把新闻栏目表里主键ID(自增)写到这个字段里,通过这样进行两关联。   ...这样就会造成一种情况,如果那天对数据库进行优化,把主键进行了重新排序(暂时没有找到mysql优化软件会优化主键,但是可以通过代码删除主键,然后从新建立自增主键来实现主键重新排序),那就彻底杯具了,栏目和文章完全对不上号了...所以我建议两之间关联不用主键,而是单独一个编号字段,我们这里可以用mysqluuid()函数做为编号,相关文献可以参考《UUID做主键好还是不好》,只所以一张要2个主键,一个物理主键(自增id...所以我建议,既然定义为varchar,就代表不会涉及到计算,何不干脆定义一个通用长度,比如varchar(50),如果真要限制长度,用程序去判断,不要让数据库来限制,不然用户输了一长串,结果mysql

5.2K10

MySQL 系列教程之(五)DDL 操作:

MySQL 数据库 创建数据库 使用root登录后,可以使用 create database if not exists user default charset utf8 创建数据库,该命令作用:...创建RUNOOB数据库,并设定编码集为utf8 删除数据库 删库有风险,动手需谨慎 drop database 库名; MySQL 数据 创建MySQL数据需要以下信息: 名 表字段名 定义每个表字段...MySQL数据。...查看表结构 desc stu; 查看表语句 show create table stu\G 修改结构 格式: alter table 名 action(更改选项); 添加字段: 添加字段:alter...AUTO_INCREMENT=1 更改类型: ALTER TABLE 名称 ENGINE="InnoDB" 关于类型 MySQL数据库类型一般常用两种:MyISAM和InnoDB 区别:

7.6K73

怎么修改mysql名称_mysql怎么修改名?「建议收藏」

大家好,又见面了,我是你们朋友全栈君。 本篇文章将和大家讲述如何快速修改mysql名,有同样需要朋友学习一下吧,希望你看后能有所帮助。...mysql修改方法: 具体步骤:打开cmd->输入“mysql -u root -p”->输入密码,进入mysql->输入“alter table rename to/as new_tablename...;” 下面的代码包括了创建过程:#创建结构.这样方式,不仅仅是结构,连带着索引也会同时创建. mysql> create table ts01 like ti_o_sms; Query...OK, 0 rows affected (0.02 sec) #修改语法:alter table old_tablename rename to/as new_tablename; mysql>...alter table ts01 rename to ts01_new; Query OK, 0 rows affected (0.00 sec) mysql> show tables; +——————

15.9K20

java进阶|MySQL数据库系列(一)数据库操作和操作

关于mysql数据库操作以及如何创建操作。...1,显示所有数据库操作 show databases; 2,使用指定数据库 use test;//这里test指的是数据库名称 3,如何创建数据库呢?...desc user;//这里user指的是名 6,如何查看表详细结构信息 show create table user; ? 7,如何显示当前数据库名称?...select database();//使用这个语句就可以看到当前在操作数据库名称 8,创建过程 语法:create table 名(属性名 数据类型[完整性约束条件]); create...foreign key:标识该属性为该外键,与某主键关联。not null:标识该属性不能为空。unique:标识该属性值是唯一。auto_increment:标识该属性值是自动增加

4.2K10

数据库规则_SQL创建数据

大家好,又见面了,我是你们朋友全栈君。 — 数据库表语句规范小结 表语句规范: 1.字段设计 A. 数据类型尽量用数字类型,数字类型比字符类型要快很多。   B....所以在建时候一定要预估这个字段最大长度到底是多少。   C. 尽量不要允许NULL,除非必要,可以用NOT NULL+DEFAULT 值来代替。   D....比如说时间: 目前我们定义时间时候 都是create_time, modify_time,以后时候,都按照这个标准来,就不要写成createtime这样。 B....新建与之前字段有相似或者相同字段,字段名称和类型也必须相同,切记不能随意重新命名,例如:token_md5 就不要命名成tokenmd5了。 E....每个字段COMMENT必须写清楚,枚举类型必须写清楚每个值到底是什么意思。 F. 名 字段名字统一用小写。

2.1K10

xamppmysql相关配置

而且我还将mysql安装成为了服务,后来查询相关资料,有网友说需要将mysql服务地址改为xamppmysql所在地址,具体怎么改我就不写了,一般都可以找到,但是我想说是,这个方式好像在我这边不起作用...找到其中ERROR项,发现它提示mysql.user这个不存在,这个保存mysql账号信息,如果没有这个,它无法知道哪些是合法用户,合法用户又有哪些权限,因此这里就需要创建这个。...这个时候需要使用命令 mysql_install_db 来初始化数据库 mysql_install_db --user=mysql -d C:\xampp\mysql\data\ -d 后面跟上mysql...D:\mysql-8.0.11-winx64 这个路径,我们将这个环境变量值修改为xamppmysql路径然后再执行命令初始化mysql数据,这个时候成功了。...数据库:我们可以指定具体用户对具体数据库有何种权限 主机:主机可以是localhost,%(任意主机),或者具体主机名、ip等等,表示这个账户只能通过对应主机来登录 分配完成之后通过 flush

2.9K30

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.2K20

mysql表语句 numeric_数据库表语句

大家好,又见面了,我是你们朋友全栈君。...展开全部 CREATE TABLE语句,用32313133353236313431303231363533e78988e69d8331333433616139于在数据库中创建新。...table参数用于指定新建名称。field1,field2用于指定在新中创建新字段名称,每创建一个新必须至少创建一个字段。type参数用来指定新建字段数据类型。...size参数用于指定文本及二进制字段长度。 NOT NULL是SQL关键字,使用该参数则新记录该字段值必须是有效数据。在一个字段上只能使用一次NOT NULL参数,否则会出错。...CREATE TABLE语句可创建空,同时可使用 INSERT INTO 语句向空写入数据。 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。

5.1K20
领券