MySQL性能优化

max_connections=512:最大连接数,解释哈。
query_cache_type
含义:查询缓冲类型。

影响:为1是使用缓冲,2是除非使用SQL_CACHE才进行缓冲。对于缓冲而言,数据并不是实时的,有一定的延时。但是对于实时性要求不高的查询短时间内多次执行,是不划算的,这个时候就需要缓存。并且缓存中是区分空格和大小写的,如果大小写不一致和空格不一致,也会认为是不同的SQL,不会利用到缓存。虽然不设置查询缓冲,有时可能带来性能上的损失,但有一些SQL语句需要实时地查询数据,或并不经常使用(可能一天就执行一两次),这样就需要把缓冲关了,可以采用临时关闭的方法SELECT SQL_NO_CACHE。

建议:一般设置为1。

query_cache_size=32M
含义:指定MySQL查询结果缓冲区的大小。

影响:如果应用程序有大量读,而且没有应用程序级别的缓存,那么这很有用。不过不要设置太大,因为维护它也需要不少开销,这会导致MySQL变慢。

建议:通常设置为 32-512Mb。设置完之后最好是跟踪一段时间,查看是否运行良好。在一定的负载压力下,如果缓存命中率(Qcache_hits/(Qcache_hits+Qcache_inserts)*100))进行调整太低了,就启用它,如果命中率已经不错了,就可以把他调小一点。对于2G的内存,先从16M开始,一倍一倍的增加,直到命中率比较稳定为止。设置后可以使用show variables like ‘%query_cache%';进行查询.

table_cache=256
含义:table高速缓存的数量

影响:当某一连接访问一个表时,MySQL会检查当前已缓存表的数量。如果该表已经在缓存中打开,则会直接访问缓存中的表已加快查询速度;如果该表未被缓存,则会将当前的表添加进缓存并进行查询。

5G标准草案公布 改变的不仅是速度

国际电信联盟按计划开始征集5G方案,并公布了包含13个5G指标的草案,5G标准化进程前进了一大步。这些指标包括:每个5G基站至少能提供20Gbps的下行和10Gbps的上行宽带传输能力;必须确保时速500公里的交通工具上的用户数据连接不中断;连接5G用户的最大延迟不能超过4毫秒,甚至是保持1毫秒的超低延迟通信;单个5G网络在每平方公里的区域范围内,至少能够承载100万台设备。

这些指标意味着什么?可以想象这样的未来场景:一位外科医生搭乘通过5G网络操控的无人驾驶出租车前往火车站,在时速500公里的高铁列车上,他用6.4秒下载了一部2G大小的高清电影到手机中欣赏。途中他接到医院通知,要遥控千里之外的机器人进行手术,通过5G网络,手术完成得干净漂亮,机器人连“一眨眼”的延迟都没有……无人驾驶汽车、高铁列车上网、远程医疗,这位医生通过5G网络实现了“联通一切、控制一切”。

充满利润的新兴市场空间被称为“蓝海”。由华为、中兴、大唐电信等8家中国企业发起成立的TD产业联盟秘书长杨骅在接受记者采访时说,5G时代的“蓝海行业”将是经济中的各垂直行业,而非移动通信行业本身,5G网络将成为大幅提升各垂直行业生产效率和智能制造水平的基础设施,也为普通民众带来更智能的生活方式。

com.android.support:appcompat-v7:23.4.0 and com.android.support:recyclerview-v7:21.1.2

These are the correct version that you can add in your build.gradle according to the API needs.

API 21:

compile 'com.android.support:appcompat-v7:21.0.1'
compile 'com.android.support:recyclerview-v7:21.0.1'

OR

compile 'com.android.support:appcompat-v7:21.0.2'
compile 'com.android.support:recyclerview-v7:21.0.2'

OR

compile 'com.android.support:appcompat-v7:21.0.3'
compile 'com.android.support:recyclerview-v7:21.0.3'

API 22:

compile 'com.android.support:appcompat-v7:22.0.0'
compile 'com.android.support:recyclerview-v7:22.0.0'

API 23:

compile 'com.android.support:appcompat-v7:23.2.0'
compile 'com.android.support:recyclerview-v7:23.2.0'

AngularJS使用ng-repeat不更细View

今天在使用angularJS开发一个上传图片的功能,但是遇到了view不更新的问题,查了国内大部分网站,发现很多人都出现过这个问题,但是他们一般都是出现在请求数据中,我的项目全部都是使用promise对象处理的,所以没有出现过他们出现的问题,但是上传图片是没有数据传输的(因为我意图是在本地裁剪图片);

如果有像我这样子的,可以使用:

$scope.$apply();
通知视图更新,但是这不是一个好的习惯。

原文:
$scope.$apply(function() {
  $scope.msgs = newMsgs;
});

That is telling Angular that you’ve modified something it needs to know about from a context that it doesn’t know about (the jQuery ajax call in this case).

There are some valid uses of $scope.$apply(), such as in event handlers, but most other times it is a sign of bad practices. You should definitely be using Angular’s $http for ajax calls.

 

 

 

angularjs的自定义directive指令的绑定策略scope:”@”、”=”、”&”

通常我们知道指令默认是可以跟外界通信的.比如:

<div ng-controller="mytest">
    <test></test>
</div>

test自定义指令是可以访问到mytest控制器的scope
要想把test自定义指令独立作用域,也就是说跟mytest切断关系:可以加上指令的参数scope:{},这样就能做到互不相干了
但是也不可能完成切断关系,总会有某些东西要互相交互,如果想跟mytest控制器的某个scope属性交互,就要用绑定策略

下面来介绍三种绑定策略的做法

1.@符号
“@”是通过DOM的属性来跟mytest控制器交互绑定一起

<div ng-controller="mytest">
    <test></test>
</div>

 

app.controller("mytest", function ($scope) {
    $scope.name = "jack";
    $scope.age = 25;
});
app.directive("test",function(){
    return {
        restrict : "E",
        template : '<div name="{{name}}"></div>',
        replace : true,
        scope : {
            name : "@"
        },
        controller : function($scope){
            console.log($scope.name);  //"jack"
            console.log($scope.age);   //age是undefined,因为没有跟mytest进行交互
        },
        link : function ($scope) {
            console.log($scope.name); //"jack"
            console.log($scope.age);  //age是undefined,因为没有跟mytest进行交互
        }
    }
});

重点:
scope : {
name : “@”
}
scope对象声明了一个属性name,然后在DOM元素的属性加上一个name,(注意两边的名字必须要一致)这样就可以进行交互操作
点击查看完整代码

2.=符号
“=”有双重绑定的功能,比如mytest控制器与test子指令进行双重绑定(单个字符串、对象都是有效的)下面代码用对象来演示

<div ng-controller="mytest">
    父:<input type="text" ng-model="data.name" />
    <test></test>
</div>

 

app.controller("mytest", function ($scope) {
    $scope.data = {
        name : "jack",
        age : 25
    }
});
app.directive("test",function(){
    return {
        restrict : "E",
        template : '<div data="data">子指令:<input ng-model="data.name" /></div>',
        replace : true,
        scope : {
            data : "="
        },
        controller : function($scope){
            console.log($scope.data);  //Object {name: "jack", age: 25}
        },
        link : function ($scope) {
            console.log($scope.data); //Object {name: "jack", age: 25}
        }
    }
});

3.&符号
“&”的意思是子指令能调用父控制器的方法,这里的指令template元素点击调用控制器的getName方法

<div ng-controller="mytest">
    <test></test>
</div>

 

app.controller("mytest", function ($scope) {
    $scope.getName = function(){
        console.log("jack");
    }
});
app.directive("test",function(){
    return {
        restrict : "E",
        template : '<div get-name="getName()">子指令:<a href="javascript:void(0)" ng-click="getName()">点击调用父方法</a></div>',
        replace : true,
        scope : {
            getName : "&"
        },
        controller : function($scope){
            $scope.getName();  //"jack"
        },
        link : function ($scope) {
            $scope.getName(); //"jack"
        }
    }
});
14950515253118
 
Copyright © 2008-2021 lanxinbase.com Rights Reserved. | 粤ICP备14086738号-3 |