notnull:为什么字段尽可能用NOT NULL,而不是NULL

 2021-06-30 14:59    77  

字段尽可能用NOT NULL,而不是NULL,除非特殊情况notnull。这句话在mysql优化的文章被大量的引用,但却不说明原因,下面就讲述一下相关内容

NULL为什么多人用notnull?

1、NULL是创建数据表时默认的notnull,初级或不知情的或怕麻烦的程序员不会注意这点。

2、很多人员都以为not null 需要更多空间,其实这不是重点。

3、重点是很多程序员觉得NULL在开发不用去判断插入数据,写sql语句的时候更方便快捷。

网上很多资料都有写:

Mysql官网文档:

“NULL columns require additional space in the rowto record whether their values are NULL. For MyISAM tables, each NULL columntakes one bit extra, rounded up to the nearest byte.”

-----------------------------------------------

Mysql难以优化引用可空列查询,它会使索引、索引统计和值更加复杂。可空列需要更多的存储空间,还需要mysql内部进行特殊处理。可空列被索引后,每条记录都需要一个额外的字节,还能导致MYisam 中固定大小的索引变成可变大小的索引

注意:但把NULL列改为NOT NULL带来的性能提示很小,除非确定它带来了问题,否则不要把它当成优先的优化措施,最重要的是使用的列的类型的适当性.

mysql 中怎样查询 ip ?

怎么感觉你的写法总是怪怪的?

你存入数据库后,查看一下,你确定有存入数据库么?

如果没有存入数据库,就是你前面那句存入语句的问题了。

如果是我写,我会这么写:

$sql="insert into count(ipaddr) values('"&$visitip&"')";

查询的:

$sql="select * from count where ipaddr like '%"&$key&"%'";

我两年前学的PHP,但因为那时很难找PHP空间,结果就不了了之了。。。

不懂上面我写的有没有错,有错请指正,在我的评论中帮我指正,谢谢了~!

$myrow=mysql_fetch_array($result);

$ipaddr=$myrow["ipaddr"];

改为

while($myrow=mysql_fetch_array($result)){

...//你的处理方式

}

不明白?

到这里

(国内最大的讨论区,论坛暂时不能访问)

中调用sql2005存储过程问题

//指定参数

cmd.Parameters.Add("@name", SqlDbType.NVarChar, 20).Value = stuName;

cmd.Parameters.Add("@password", SqlDbType.NVarChar, 20).Value = stuName;

〉〉这第2句对吗?

.Value = stuName; ==> .Value = stuPass;

本文标签:调用存储过程

原文链接:https://www.xgfox.com/dmfx/143.html

本文版权:如无特别标注,本站文章均为原创。