xunwap

专注移动互联网服务

正在浏览 MySQL 里的文章

在使用类似于: “mysql –database=xxx < sql_file.sql” 的形式来将SQL语句批量导入到MySQL中时,如果此文件中的某一条SQL在入库的过程中发生错误,那么”mysql –database=xxx < sql_file.sql“命令会停止运行。
因此,这条引发错误的SQL之后的所有的SQL都将无法导入数据库。如果我们需要忽略导入过程中的SQL,并继续执行其后的所有的SQL直到全部导入完成,那么就需要在上述命令中加入”–force”参数,也即是导入命令为: “mysql –force –database=xxx < sql_file.sql“。
大多数情况下并不建议在批量导入过程中使用”–force”参数,因为如果忽略了其中本不应该发生的SQL错误,那么可以导致导入的数据发生错误。

本站原创文章,转载请注明出处

对于一个典型的web应用,通常在后台都包括大量的数据库操作,如果这类系统存在性能瓶颈,我们首先应该想到的优化点就是: 优化数据库。
更好的做法是在系统设计和开发的初期就把数据库进行优化,这样相比后期的数据库优化的代价要小得多。但实际上,在通常的web开发中,我们看到太多的系统设计和代码实现中将数据库当作计算器使用,他们将大量的数据逻辑运算放置到数据库SQL操作中完成,在他们看来,数据库不但是一个存储和查询系统,同时也是一个使用方便的计算器: 各种sort,sum…操作都大量出现在SQL操作中。
对于少量的toy级别的数据量,在SQL中包含复杂的算术操作没有问题,因为数据量很小,运算速度可以很快。但是对于包含海量数据的互联网应用,对千万级别的数据量进行算术运算,这里面对数据库整体产生的性能影响,尽而对系统的整体产生的性能影响就必须要注意了。
数据库作为一个server对外提供数据的查询和存储操作,同时要响应多个SQL查询请求,任何一个性能低下的SQL查询的都将对整个数据库的恨不能产生影响,这也会影响到其它的查询的性能,也就是说这种影响是全局的。
让每一个数据查询操作都在最快的时间内完成,将会从整体上提升数据库的并发处理能力,从而也可以从整体上提升系统的整体性能。
简单的总结就是: 优化SQL操作,让查询操作在最短的时间内完成,不要把数据当计算器使用。

本站原创文章,转载请注明出处。