将sql文件从上到下分成多段运行,比如里面如果有:
create table XXXX () go这样的语句,将起copy出来另存一个文件,当然也是sql结尾,然后单独运行或直接将这段语句放在查询分析器之类的工具中运行,然后看看结果是否还是什么也没有
首先换数据库,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 看是否有锁表情况,
设置 mycnf 中的long-query-time 和log-slow-queries 记录服务器那些SQL执行速度比较慢
根据上述情况查看对对应的SQL语句进行优化
优化服务器性能,用RAID5(SAN),加内存本身的升级,提高硬盘I/O性能。
数据库总体性能优化:
数据表最好能拆成小表。
数据库切片,分到不用的服务器上,
数据库访问性能优化
修改mycnf, 下面是影响比较大的:
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%' 查看
另外表的编码也要与数据库统一
1、首先,创建空白数据库,在数据库中创建表并插入数据,如下图所示,然后进入下一步。
2、其次,完成上述步骤后,菜单栏中选择“创建”,然后选择“查询设计”按钮。将d出“显示表”窗口,如下图所示,然后进入下一步。
3、接着,完成上述步骤后,选择“表1”并单击“添加”,如下图所示,然后进入下一步。
4、然后,完成上述步骤后,单击查询设计网格第一列中的字段行,选择“生成器”选项,打开“表达式生成器”对话框,在对话框中输入表达式“m”:Max([Age])-min([Age]),单击“确定”按钮,如下图所示,然后进入下一步。
5、随后,完成上述步骤后,点击“查询工具”选项卡中“结果”命令组的“数据表视图”命令以查看查询结果,如下图所示,然后进入下一步。
6、最后,完成上述步骤后,查询结果如下图所示。这样,问题就解决了。
重新设置服务器。
只需在左窗格中右击或按住Control键并点按连接,选择打开数据库。这会提示你输入数据库名。输入数据库名并点击确定。
在连接窗口,选择数据库选项卡。启用使用自定义数据库列表并添加你的数据库到列表。勾选要进行显示的数据库。
以上就是关于用navicat运行sql文件,但是刷新后数据库无表或者有表无数据全部的内容,包括:用navicat运行sql文件,但是刷新后数据库无表或者有表无数据、数据库中的表总是会出现查询的数据都为null或者为空,但是数据表中确实有数据存在、如何对数据库中表进行查询,怎么做等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)