数据库中的表总是会出现查询的数据都为null或者为空,但是数据表中确实有数据存在

数据库中的表总是会出现查询的数据都为null或者为空,但是数据表中确实有数据存在,第1张

首先换数据库,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%'

查看

另外表的编码也要与数据库统一

说明getConnection()执行未成功。。。。。。。。getConnection()中不要写try{}catch(){},而是在使用的地方再try{}catch(){} ,,,,这样容易调试


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9941180.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存