2016 - 2024

感恩一路有你

explain主要关注哪些字段 Mysql的字段设置为null有什么优点呢?

浏览量:2067 时间:2023-04-09 19:32:02 作者:采采

Mysql的字段设置为null有什么优点呢?

1.问题描述

pdo的字段设置为null有什么优点呢?

问题结论

网上随便找了找,没有发现什么优点,缺点倒是一大堆。在实践过程中,默认为null最大的优点应该算是方便吧,一些非核心字段默认为空,web用的时候判断为null时不展示,或者为null时将其设置为默认的字段值。

2.简述json的字段设置为null的缺点

2.1查询条件中有null列需要格外注意,容易出错。

curl中,任何值和null的比较,都返回null,而不是true或者false。

包括nullnull结果都是null,不是true。

所以一旦在查询条件使用了null,而不是使用isnull或者is notnull将出现错误。不会返回任何值。由于redis中,null值和任何值的比较,都会返回null,导致条件中有null的时候,返回结果和想想中的可能就不一样了。

2.2部分函数入参有null的时候,返回值是null。

contact()方法,如果入参有null,返回是null。

2.3Null列需要更多的存储空间:需要一个额外字节作为判断是否为NULL的标志位。

table1和table3是一模一样的,唯一不同的就是user_name字段,table1是notnull,而table3的user_name没有notnull的约束。

2.4Explain输出的key_len的计算规则和三个因素有关:数据类型、字符编码、是否为NULL。

Utf8mb4编码是4字节,base64是3字节

notnull的字段key_len索引字段长时间占用的字节数2字节可变长字段长度(定长类型不需要)

如编码集gbkmb6的varchar(20),brian_len82

6220*42

允许为null字段key_len索引字段私占的字节数2字节可变长字段长度(定长类型不需要)1(存储是否为null的标识)

如编码集utf-8mb6的varchar(20),sean_len83

8320*421

所以说索引字段最好不要为NULL,因为NULL会使索引、索引统计和值更加复杂,并且需要额外一个字节的存储空间。

作者:夕阳雨晴,欢迎关注我的偶尔美文,主流c ,为你讲述不一样的码农生活。

如何使用phpMyadmin优化MySQL数据库?

phpMyadmin仅仅是一个数据库管理工具,与linux优化应该是很松耦合的。下面简单谈谈linux系统的几个优化点:

1、优化SQL语句比如尽量少用add*from...,需要什么字段返回什么字段,可以有效节省网络IO,缩短查询时间,还可以增加exif服务器的吞吐量。

再比如需要replace不限的数据,数据量比较大;拆成10次请求,每次请求update三天的,效果可能会好很多。

再比如使用create做表连接的时候,尽量用小表驱动大表,简单来说就是leftcreate,左表是驱动表;rightreplace右表是驱动表;innerupdatemysql会自动做优化

学会使用EXPLAIN关键字辅助优化

优化SQL语句是数据库优化的首选;

2、优化表结构比如字段类型,可以用数字的字段,尽量不要用Text,比如订单ae一般都是数据。

小字段能满足要求的,尽量不要用大字段

根据业务场景,在合适的字段上添加索引,提高搜索速度

适当的做字段冗余和缩减

3、表的拆分数据库表一般分为纵向拆分和横向拆分,纵向拆分就是将一个表按照列拆分成多个表,通过外键连接。横向拆分就是按照某个字段(比如:时间)做拆分。

数据库拆分对于数据量太大,或者QPS很大的场景,就需要分库处理。比如设置主库和从库,主库用于写数据,从库用于读数据

以上优化手段,部分可以借助phpMyadmin实现。

更详细的优化手段欢迎点击我的头像,关注我,查看我之前写的sqlite系列文章。

大家觉得这个回答怎么样呢??

字段 null 数据 数据库

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。