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

【MySQL】MySQL知识总结

一个整型字段如果为NULL表示它的为0,同样的,一个字符串型字段为NULL也表示它的为空串’’。 通常情况下,字段应该避免允许为NULL。...FLOAT和DOUBLE在指定精度时,默认会按照实际的精度来显示,DECIMAL在指定精度时,默认整数为10,小数为0,即(10, 0)。...查询指定字段数据 SELECT field FROM tablename; 如果关键字SELECT后面的字段包含在所查询的表中,那么MySQL会报错。 只显示该字段的一列数据。...执行语句中如果要引用更新记录中的字段,对于INSERT语句,只有NEW是合法的,表示当前已插入的记录;对于DELETE语句,只有OLD才合法,表示当前删除的记录;UPDATE语句可以和NEW(更新后)...行锁:一个用户“占据”他要插入数据的那一行。 相关联想:上厕所,你锁住了你的那个坑位,不是锁住厕所的大门。 就是:是否允许多个用户同时更新一个表。

7.1K52

MySQL索引优化分析

占用存储空间:索引实际上也是一张表,记录了主键与索引字段,一般以索引文件的形式存储在磁盘上。 2. 降低更新表的速度:表的数据发生了变化,对应的索引也需要一起变更,从而减低的更新速度。...单索引:一个索引包含单个列,一个表可以有多个单列索引 唯一索引:索引列的必须唯一,但允许有空 复合索引:一个索引包含多个列,实际开发中推荐使用 实际开发中推荐使用复合索引,并且单表创建的索引个数建议不要超过五个...在损失精确性的情况下索引长度越短越好。key_len 显示的为索引字段的最可能长度,并非实际使用长度,即key_len是根据表定义计算得,并不是通过表内检索出的。...覆盖索引(Covering Index) :也叫索引覆盖,就是select 的数据列只用从索引中就能够取得,不必读取数据行,MySQL可以利用索引返回select 列表中的字段不必根据索引再次读取数据文件...创建索引后,查询数据变快,但更新数据变慢。 3. 性能下降的原因很可能是索引失效导致。 4. 索引创建的原则,经常查询的字段适合创建索引,频繁需要更新的数据不适合创建索引。 5.

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

ES 译文之如何使用 Logstash 实现关系型数据库与 ElasticSearch 之间的数据同步

Elasticsearch: 7.1.1 Logstash: 7.1.1 Java: 1.8.0_162-b12 JDBC input plugin: v4.3.13 JDBC connector: Connector...可以在每次轮询时请求上次轮询后新增更新的记录; insertion_time,该字段用于一条记录插入时间,主要是为演示方便,对同步而言,并非必须; MySQL 操作 前面设置完成,我们可以通过如下命令插入记录...SELECT 语句中,可通过 :sql_last_value 访问该配置字段。...在 input 配置中,可被 SELECT 语句引用。在每次轮询开始前,从 .logstash_jdbc_last_run 中读取,此案例中,即为 "unix_ts_in_secs" 的最近。...之所以使用 metadata,因为它是临时的,不会使文档中产生新的字段。同时,我们也会把希望写入 Elasticsearch 的字段 id 和 @version 移除。

1.4K30

MySQL索引优化分析

占用存储空间:索引实际上也是一张表,记录了主键与索引字段,一般以索引文件的形式存储在磁盘上。 2. 降低更新表的速度:表的数据发生了变化,对应的索引也需要一起变更,从而减低的更新速度。...单索引:一个索引包含单个列,一个表可以有多个单列索引 唯一索引:索引列的必须唯一,但允许有空 复合索引:一个索引包含多个列,实际开发中推荐使用 实际开发中推荐使用复合索引,并且单表创建的索引个数建议不要超过五个...在损失精确性的情况下索引长度越短越好。key_len 显示的为索引字段的最可能长度,并非实际使用长度,即key_len是根据表定义计算得,并不是通过表内检索出的。...覆盖索引(Covering Index) :也叫索引覆盖,就是select 的数据列只用从索引中就能够取得,不必读取数据行,MySQL可以利用索引返回select 列表中的字段不必根据索引再次读取数据文件...创建索引后,查询数据变快,但更新数据变慢。 3. 性能下降的原因很可能是索引失效导致。 4. 索引创建的原则,经常查询的字段适合创建索引,频繁需要更新的数据不适合创建索引。 5.

96610

MySQL索引优化分析

索引:一个索引包含单个列,一个表可以有多个单列索引 唯一索引:索引列的必须唯一,但允许有空 复合索引:一个索引包含多个列,实际开发中推荐使用 实际开发中推荐使用复合索引,并且单表创建的索引个数建议不要超过五个...select_type select 查询的类型,主要是用于区别普通查询,联合查询,嵌套的复杂查询 simple:简单的select 查询,查询中包含子查询或者union primary:查询中若包含任何复杂的子查询...在损失精确性的情况下索引长度越短越好。key_len 显示的为索引字段的最可能长度,并非实际使用长度,即key_len是根据表定义计算得,并不是通过表内检索出的。...覆盖索引(Covering Index) :也叫索引覆盖,就是select 的数据列只用从索引中就能够取得,不必读取数据行,MySQL可以利用索引返回select 列表中的字段不必根据索引再次读取数据文件...2 创建索引后,查询数据变快,但更新数据变慢。 3 性能下降的原因很可能是索引失效导致。 4 索引创建的原则,经常查询的字段适合创建索引,频繁需要更新的数据不适合创建索引。

1.2K40

MySQL索引优化分析

占用存储空间:索引实际上也是一张表,记录了主键与索引字段,一般以索引文件的形式存储在磁盘上。 2. 降低更新表的速度:表的数据发生了变化,对应的索引也需要一起变更,从而减低的更新速度。...单索引:一个索引包含单个列,一个表可以有多个单列索引 唯一索引:索引列的必须唯一,但允许有空 复合索引:一个索引包含多个列,实际开发中推荐使用 实际开发中推荐使用复合索引,并且单表创建的索引个数建议不要超过五个...在损失精确性的情况下索引长度越短越好。key_len 显示的为索引字段的最可能长度,并非实际使用长度,即key_len是根据表定义计算得,并不是通过表内检索出的。...覆盖索引(Covering Index) :也叫索引覆盖,就是select 的数据列只用从索引中就能够取得,不必读取数据行,MySQL可以利用索引返回select 列表中的字段不必根据索引再次读取数据文件...创建索引后,查询数据变快,但更新数据变慢。 3. 性能下降的原因很可能是索引失效导致。 4. 索引创建的原则,经常查询的字段适合创建索引,频繁需要更新的数据不适合创建索引。 5.

76550

MySQL索引优化分析「建议收藏」

索引:一个索引包含单个列,一个表可以有多个单列索引 唯一索引:索引列的必须唯一,但允许有空 复合索引:一个索引包含多个列,实际开发中推荐使用 实际开发中推荐使用复合索引,并且单表创建的索引个数建议不要超过五个...select_type select 查询的类型,主要是用于区别普通查询,联合查询,嵌套的复杂查询 simple:简单的select 查询,查询中包含子查询或者union primary:查询中若包含任何复杂的子查询...在损失精确性的情况下索引长度越短越好。key_len 显示的为索引字段的最可能长度,并非实际使用长度,即key_len是根据表定义计算得,并不是通过表内检索出的。...覆盖索引(Covering Index) :也叫索引覆盖,就是select 的数据列只用从索引中就能够取得,不必读取数据行,MySQL可以利用索引返回select 列表中的字段不必根据索引再次读取数据文件...2 创建索引后,查询数据变快,但更新数据变慢。 3 性能下降的原因很可能是索引失效导致。 4 索引创建的原则,经常查询的字段适合创建索引,频繁需要更新的数据不适合创建索引。

73610

如何实现 MySQL 删除重复记录并且保留一条

mysql不支持这种更新查询同一张表的操作 解决办法:把要更新的几列数据查询出来做为一个第三方表,然后筛选更新。 ? 3....然后再查找deptno包含刚才查出来的。这样就查询出了所有的重复数据(除了deptno最小的那行)。...就是将group by 的字段增加为你想要的即可。搜索Java知音公众号,回复“后端面试”,送你一份Java面试题宝典.pdf 此处写一个,其他方法请仿照一个字段的写即可。...IN适合的情况是外表数据量小的情况,不是外表数据大的情况,因为IN会遍历外表的全部数据,假设a表100条,b表10000条那么遍历次数就是100*10000次,exists则是执行100次去判断a表中的数据是否在...b表中存在,它执行了a.length次数。

1.1K10

为什么你写的sql查询慢?为什么你建的索引常失效?

我们试着看看下面打印情况 将select * from 换成了 select order\_level,input\_date from 后。...检索虽然快了,但返回的内容只有order\_level和input\_date 两个字段,让业务同事怎么用?难道把每个字段都建一个复合索引?...select\_type select 查询的类型,主要是用于区别普通查询,联合查询,嵌套的复杂查询 simple:简单的select 查询,查询中包含子查询或者union primary...在损失精确性的情况下索引长度越短越好。key\_len 显示的为索引字段的最可能长度,并非实际使用长度,即key\_len是根据表定义计算得,并不是通过表内检索出的。...覆盖索引(Covering Index) :也叫索引覆盖,就是select 的数据列只用从索引中就能够取得,不必读取数据行,MySQL可以利用索引返回select 列表中的字段不必根据索引再次读取数据文件

56010

MySQL(DML数据定义语句)

代码示例: 插入一个指定数据: insert into b_user(name) values('张三'); 指定插入数据(需要与字段列表顺序一致): insert into b_user values...一般如果主键列自增,不显示的给自增列赋值; 2.在列表中字符、日期字段都应该使用单引号括起来 ; 3.如果表中有NOT NULL字段,该字段必须赋值 ; 4.如果表中没有NOT NULL,可以赋值,也可以赋值...,birthday from b_user where user_id>2); 注意:字段列表应该和SELECT后的显示字段列表个数,类型一致 另一种插入方式 语法: INSERT INTO 表名 SET...字段名=字段名=; 示例代码: INSERT INTO temp_user SET name='kobe',sex='男',birthday='1976-01-01'; 更新语句 语法: UPDATE...DELETE支持事务回滚,TRUNCATE不支持事务回滚;

94710

MySQL必知必会分页whereupdatelimit字符串截取order by排序ength和char_lengthreplace函数1 键2 数据库事务的ACID3 视图4 删除连接

= b.id order by a.id; 该查询同方式1一样,m的可能很大,但由于内部的子查询扫描了字段id,不是整张表,所以性能要强于方式1查询,并且该查询能够解决方式2和方式3不能解决的问题...表 set 列=新 where 更新条件; 可以同时更新若干个字段 可以在 where 子句中指定任何条件 当你需要更新数据表中指定行的数据时 WHERE 子句是非常有用的 可以在一个单独表中同时更新数据...3 视图 视图是虚拟的表,与包含数据的表不一样,视图包含使用时动态检索数据的查询;包含任何列或数据。...> delete (4) 应用范围 TRUNCATE 只能对TABLE DELETE可以是table和view (5) TRUNCATE 和DELETE删除数据 DROP则删除整个表(结构和数据)...(6) truncate与不带where的delete :删除数据,不删除表的结构(定义) drop语句将删除表的结构被依赖的约束(constrain),触发器(trigger)索引(index)

2.1K140

For update介绍

#不加锁获取 id=1 的商品对象 select * from goods where id = 1 begin; #更新 stock ,这里需要注意 where 条件 “stock = cur_stock...commit; 行锁与表锁 根据主键进行查询,并且查询到数据,主键字段产生行锁 begin; select * from goods where id = 1 for update; commit;...根据主键进行查询,没有查询到数据,产生锁 begin; select * from goods where id = 1 for update; commit; 根据主键、非主键含索引(name)...,则非主键不含索引字段产生表锁,如果其他线程按非主键含索引字段进行查询,则非主键含索引字段产生行锁,如果索引是枚举类型,mysql也会进行表锁,这段话有点拗口,大家仔细理解一下 begin; select...,name字段产生表锁 begin; select * from goods where name='prod11' for update; commit; 根据主键进行查询,查询条件为不等于或者LIKE

1.4K31

MySQL实战问题01 索引相关

倒叙存储: 如果你存储身份证号的时候把它倒过来存,每次查询的时候,你可以这么写: mysql> select field_list from t where id_card = reverse('input_id_card_string...select field_list from t where id_card_crc=crc32('input_id_card_string') and id_card='input_id_card_string...使用倒序存储和使用 hash 字段这两种方法的异同点。 从占用的额外空间来看,倒序存储方式在主键索引上,不会消耗额外的存储空间, hash 字段方法需要增加一个字段。...函数, hash 字段的方式需要额外调用一次 crc32() 函数。...如果从这两个函数的计算复杂度来看的话,reverse 函数额外消耗的 CPU 资源会更小些。 从查询效率上看,使用 hash 字段方式的查询性能相对更稳定一些。

68410
领券