值表示是未知的值。NULL
值与空的值或零值不同。两个
Null
值永远不会相等。因为每个
NULL
的值都是未知的,两个
Null
值之间、或是一个
NULL
与其他任何值之间的比较都会传回未知的。
Null
值通常会指出未知的资料、不适用的资料或之后将要加入的资料。例如,客户的称谓在下订单时可能是未知的。
下列是
Null
的相关资讯:
若要在查询中测试
Null
值,请在
WHERE
子句中使用
IS
NULL
或
IS
NOT
NULL。
在
SQL
Server
Management
Studio
程式码编辑器中检视查询结果时,Null
值会在结果集中显示为
(null)。
可藉由在
INSERT
或
UPDATE
陈述式中明确陈述
NULL、在
INSERT
陈述式中空出资料行,或是在使用
ALTER
TABLE
陈述式将新的资料行加入至现有的资料表时,将
Null
值插入资料行。
Null
值不得用於分辨资料表的某个资料列,以及资料表的另一个资料列时所需的资讯
(例如,外部索引键或主索引键)。
参照联机帮助
首先换数据库,MySQL处理这个数量级数据比较吃力。推荐你用DB2或ORACLE
如果不能换,检查一下存储引擎用InnoDB,如果是,检查
innodb_flush_log_at_trx_commit
这个选项,是否是1
如果是1
用SET
AUTOCOMMIT
=
0
,提高数据修改速度
PHP优化需要
MySQL
Slow
Log
分析工具分析日志:mysqldumpslow或mysqlsla比较不错。
Explain/
DESC
分析SQL
的执行情况和SHOW
PROCESSLIST
使用SHOW
PROCESSLIST
看是否有锁表情况,
设置
my.cnf
中的long-query-time
和log-slow-queries
记录服务器那些SQL执行速度比较慢
根据上述情况查看对对应的SQL语句进行优化
优化服务器性能,用RAID5(SAN),加内存本身的升级,提高硬盘I/O性能。
数据库总体性能优化:
数据表最好能拆成小表。
数据库切片,分到不用的服务器上,
数据库访问性能优化
修改my.cnf,
下面是影响比较大的:
innodb_flush_log_at_trx_commit
设置为0
如果比下面值大就不用调整了:
query_cache_size
设置为16M
sort_buffer_size
设置为16M
record_buffer
设置为16M
key_buffer_size
设置为8M
innodb_buffer_pool_size
设置为32M
下面是建议设置的
table_cache
设置为512
read_buffer_size
设置为16M
myisam_sort_buffer_size设置为16M
innodb_additional_mem_pool_size
设置为128M
innodb_log_file_size
设置为256M
innodb_log_buffer_size设置为8M
数据库表优化,
1
建立相应的INDEX
2
统一编码,MySQL的默认编码是Latin1,不支持中文,需要把数据库的默认编码修改为gbk或者utf8
show
variables
like
'character%'
查看
另外表的编码也要与数据库统一
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)