Showing posts with label Other. Show all posts
Showing posts with label Other. Show all posts

Wednesday, November 18, 2020

Fix loading issues on Hyper-V compatible version of BlueStacks 4

  •  BlueStacks is stuck on the loading screen
  • BlueStacks is loading very slowly
  • An error message might appear after loading, informing you that BlueStacks "Could not start the Engine" as shown below.

Sunday, March 15, 2020

Some Video Resources at bilibili.com

Miscellaneous

Comprehensive audio and video editing tutorials, programming introductory tutorials, graphic design tutorials, office use tutorials, and even masters of hardware circuit teaching! The coverage is incredible.
image

Saturday, December 14, 2019

Top Six Communicating Skills - Listening, Coaching, Teaching, Guiding, Advising, Motivating

As a leader, one of the most critical skills you need to develop is the ability to adapt your communication style based on situational needs. When you’re able to use the right communication tools, you’re able to help your team reach peak performance. There’s nothing more powerful than communicating in a way that truly resonates with your employees. Let’s take a look at the six key communication styles that every leader should have in their toolbox.
Listening
Listening should be the most used form of communication for every leader. There’s no ideal ratio of listening to speaking, but the scale should always tip at least slightly in favor of listening. Listen to not only what your team is explicitly saying, but what they’re not saying as well. Listening between the lines allows you to uncover your team’s hidden frustrations and challenges. When you’re truly hearing what your employees are telling you, you’ll have all the information you need to evaluate the situation and respond with the most effective method of communication.

Coaching (Learning & Sharing)

Saturday, October 26, 2019

github资料汇总

1 、后端技能汇总
https://github.com/xjjdog/javaok

《必看!java后端,亮剑诛仙》。java发展路线技术要点。根据基础、Java基础、Java进阶给分了下类,挑的也都是最常用最重要的工具。对于初、中学者,是不可多得的指引性文章。本仓库最近提交,属于王婆卖瓜类型。

star: 500

Wednesday, January 30, 2019

记录一次侥幸打告票经历

从美国度假回来,经过昨天的暴雪航班延误,刚到多伦多就上法庭打交通告票,去年1月的一张右拐disobey sign,罚110,扣两分,涨保险。抱着侥幸的心理来到old city hall,万万没想到暴雪也挡不住😂警察还是都来了,还看到了上次给我开超速票的那个警察。。。整个法庭除了我和另外一对父子最后一个个全都认罪了。。。警察把我叫出去说你认罪吧给你减刑到improper use of signal,罚钱不扣分,咱们都可以走了。我说我刚吃了一张超速,减刑对我没帮助,能不能给一张non-moving violation,这样我不涨保险,大家都开心?警察人挺好,说那我问问prosecutor,可惜那个检察官很硬派,说没戏,还当场做托儿给我介绍一个paralegal律师,拉我出去花言巧语说了一通叫我雇他,我说谢谢不用了,我飞机delay却没cancel,I’m feeling lucky today

Tuesday, August 21, 2018

素材网站

图片素材网站


◆素材中国: http://www.sccnn.com/
◆我图网: http://www.ooopic.com/
◆花瓣网:http://huaban.com/
◆懒人图库: http://www.lanrentuku.com/
◆站酷网: http://www.zcool.com.cn/
◆视觉中国: http://www.shijue.me/
◆千图网: http://www.58pic.com/ 
◆摄图网 :http://699pic.com/
◆包图网 :http://888pic.com/
◆昵图网 :http://www.nipic.com/index.html
◆海洛创意:http://www.hellorf.com/
◆图虫 :https://tuchong.com/
◆Picjumbo  :https://picjumbo.com/
◆Pexels :https://www.pexels.com/
◆素材公社 :http://www.tooopen.com/
◆插画家园 :http://www.13cg.com/
◆Pixabay :https://pixabay.com/
◆Wallpaper :http://cn.forwallpaper.com


Saturday, May 12, 2018

[榴营销]某芙的故事

话说2005年,京城南锣鼓巷菊儿胡同有个小痞子雕某,早几年靠传销和连锁加盟红利坑蒙拐骗了几百万,然后给父母给自己买了房,又和姐姐合开了几家精油店接着骗连锁加盟,已经无所事事两年了。
那年他不过三十出头,已经实现了三种自由——说财富自由呢,北京三套房账上还几百万;说时间自由呢,店都交给姐姐打理自己当甩手掌柜,白天就靠传奇打法都练到全区第一了;说地点自由呢,晚上不是到天上人间喷水就是到天涯管前灌水,好不逍遥快活。
直到有一天,他姐姐说扛不住了,三个月没加盟的,公司剩的那点钱连本月工资都发不出了……雕某当时就屁滚尿流地回到了半年没进的公司,当然,没忘记在家里的电脑挂级练着传奇……
见了姐姐,雕某当然是假戏真做地大发了一顿脾气,然后掏了几十万把姐姐的股份全买了,然后当天就开除了那些月薪四五万也不知道在干啥的高管(以及不巧走过现场的的一个孕妇员工)。
后来雕某在喝了点酒的时候说起这段故事,总结了三点经验:一是把劳动关系办到其他非主体公司,做账与开人方便;二是老板自己要牛逼,再牛逼的职业经理人都不会有主人翁意识主动为老板分忧的;三是要赶走合伙人,在公司出现财务问题的时候低价收购对方股份最合适。

[榴营销]流量入口

因为销售额=流量×转化率×客单价。
1、酒香也怕巷子深,
没有流量,再好的品牌、产品、价值、渠道都没有销售额。
2、但酒不香巷子浅也不成
只有流量,没有好的品牌、产品、价值、渠道照样没有销售额。
所以解决了转化率、客单价问题之后,流量入口才有价值。或者说,流量入口的意义,在于与背书、闭环共同构成了一个系统。
在引流开始之前,就得给自己铺几种背书做铺垫——流量入口最多让顾客「认知」你,当顾客「认可」你,转化率才上得去。(所以骗子都喜欢装个大逼)
在引流开始之后,就得榨干消费者的所有价值——从「购买」,到「复购」,到「分享」。(所以要学营销。天黑路滑,人心复杂,一不小心就被套路了。)
往细说,说的就是在背书、闭环都OK的前提下,怎么引入流量,获得销售额赚大钱。
流量入口不仅是几个骗点击的广告,几篇骗搜索的软文,几位力荐你的大咖,流量入口的本质不是数据与呈现(数据只是可作弊的结果)
而是真实的消费者——受众、顾客、粉丝
1、所谓受众,就是有财力与意愿的;
2、所谓顾客,就是只购买不分享的;
3、所谓粉丝,就是又购买又分享的。
就是一切向钱看,为「利」大量摄取受众为顾客。
所以建立三个维度来评估,
1、质量(受众财力与意愿越高越好),
2、数量(受众数量越多越好),
3、成本(我们要掏的钱越少越好)。

[榴营销]雕某牛腩的故事

雕某牛腩就是为冲突主义而生的——雕某在2011年底日赚20万的膨胀期到香港瞎逛,吃到九记牛腩觉得不错,就问人家内地加盟不……结果人家不进大陆。
于是雕某就想冲突那么一下子,找人联系上食神戴龙,80万分10年付买了人家的牛腩配方,说偶要用自己的名号做一碗好牛腩。
雕某当时想的是,爷虽不懂餐饮,但爷懂互联网营销啊!于是让波某去想怎么玩,作为入职初期的作业。波某玩知乎的,当然第一反应是用封测聚集势能到开业时爆发一炮而红,且专邀明星放大冲突猎奇心理与叛逆心理,让普通顾客想为什么明星抢着去?为什么不让我去?——然后都抢着去(这也够冲突的)。
且正巧波某那边将达人的战场由博客转到了微博,且有不错的模型评估每位明星的价值,于是雕某就放心让SNS组撒开手脚勾搭明星来试吃雕爷牛腩。开始其实也相当Low逼,毕竟颜某做网页美工出生的,不太懂平面与装修那些,直到雕某挖来了千叶珠宝的设计总监,要把餐具与环境当成奢侈品去设计,然后亲自审批再收集明星建议——在千叶总监被虐跑之后,终于有了逼格。
然后就是公测当天啊,起码得放串炮仗啊。正好当时联系上了苍老师团队,于是就请她和留几手在开业当天,在雕某牛腩餐厅偶遇,造出了个大新闻再上了微博头条……
走红也很冲突主义。本来也就个餐厅开业的花边新闻,本来也没想往互联网思维扯,诉求的是轻奢餐……好死不死当时互联网思维正火,于是雕某牛腩把封测说成工匠主义,把菜品少说成极致单品,把每季上新说成快速迭代,把支持比特币付款说成拥抱变化,把自己吹成了互联网思维圣地之一骗食客与眼球无数(当时北京三大互联网思维圣地,罗辑思维、雕爷牛腩、黄太吉煎饼)。
但冲突主义不解决产品问题。解决不了本质问题——不好吃,连招牌菜食神咖喱牛腩都不好吃。也难怪,在开业前一周,俩主厨还在捣鼓咖喱的火候呢……说500万给80万还分期坑了戴龙老人家,戴龙老人家当然要在配比与火候上藏着掖着坑回去咯。
但木已成舟,只好硬着头皮上……然后用戴龙食神的背书,用菜品烟雾缭绕的体验价值,用从互联网思维餐厅取经的传播价值,加众口难调的理论,及屌丝没有味蕾的钩子(说是钩子,因为能让那些自以为不是屌丝的来用餐测试味蕾),证明自己是真好吃。
虽说众口难调,但众口也难骗,尤其在口味这件事上,大家更认苍蝇馆子——因为苍蝇馆子口味好价格低像娶老婆居家过日子天天都要,而某爷牛腩这样仪式感十足是天上人间找小姐偶尔一发……于是三年多下来,某爷牛腩的回头客比例徘徊在10%以下;加上菜品成本、场地成本、中央厨房成本、人员成本,其实不赚钱,于是雕某也不想建牛逼的团队,没牛逼人咋拉新……于是就陷入了没新客、没老客、吃老本的恶性循环等死。
总结下来,雕某牛腩的全案成于人性与红利。人性贪,所以雕某说的是主菜以外都是送的,且那些体验与传播价值也是送的;人性懒,所以雕某牛腩把香港的牛腩移植到了内地,到你身边;人性装,所以雕某牛腩先自称轻奢餐,再自称互联网思维;真的是凑巧靠上了互联网思维红利,后来雕某的薛蟠烤串,与切克闹小丑煎饼,以及皮娜鲍什下午茶,都用类似手段玩,个个没火。
死于产品矮小症,雕某在口味上不能像在营销上一样身先士卒,于是被食神,被三流厨师们忽悠的够呛……有个小插曲,当时有一著名厨师,蔡阳,雕某说是给人十万块钱买五道菜,人教了厨师给雕某品了,雕某说不好吃打算赖账……于是蔡阳找了辆军车堵住了雕某公司大门,带了几个人进来要钱,波某组织男员工堵了人墙,然后带雕某从后门跑了……这就是外行尴尬症——自己不熟或合伙人不熟的项目千万别贸然做,否则作死是时间问题。治产品矮小症的药,除了把自己逼懂行,或找懂行的合伙人外,别无他解。

Friday, December 9, 2016

用谷歌Chrome浏览器的开发调试功能,不装客户端不限速,百度云文件随意下

免费云盘越来越少了,编辑部内容想要共享些东西除了靠内部架设的文件服务器外,就只能用百度云盘了。但大家也知道,百度网盘里面的小文件,直接用浏览器和下载工具就行,但是大文件、或者易于查看的文件夹,就必须安装客户端了。

 

作为测试编辑,在电脑中装满各种各样的工具无可厚非,但作为偶尔检查小编工作的总编大人,电脑上可是非常干净的,好几次因为用百度网盘给他共享文件被狠狠的批了!痛定思痛,肯定是之前的《下载限制多?这个方法就比迅雷好!》和《下载限制多?这个方法就比迅雷好!》他觉得不够好,小编们只好爆发一下小宇宙,用更简单的方式解决百度网盘下载的问题。

经过几周的漫长测试和摸索,发现可以直接使用谷歌Chrome浏览器的开发调试功能,绕过下载时必须使用客户端的问题,用迅雷等下载软件全速下载文件。嗯,今天终于可以从小黑屋里面搬出来了!

Sunday, September 4, 2016

Garden Design Ideas Low Maintenance

 garden design ideas low maintenance

Keep your garden maintenance to a minimum by creating stone, mulch and deck areas along with grass. The less grass you have to mow, the more time you have to enjoy your garden.

 easy garden design ideas

When it comes to garden design, the possibilities are endless. Yet some elements are easier to introduce than others. This quaint backyard garden design offers several nice touches that please the eye and can be added with just a little work. Look no further than the stone walkway, and the large, low-maintenance plants.

Saturday, July 16, 2016

Heroku+goproxy搭建自己个人的翻墙

参考帖(已经不能成功部署),所以楼主重新写一写,感谢原作者:https://gochrome.info/heroku-goproxy/

这种方式科学上网我想会安全点,毕竟是国外的,最好用谷歌、微软等邮箱注册,用别人的总感觉不安全,不是要天天签到就是看别人的广告,如一些修改合成的浏览器。

第一步Heroku注册

官网地址:
https://www.heroku.com/
图1


图2


图3


图4、登录你的注册邮箱开始验证,下一步设置heroku登录密码


图5、设置heroku登录密码


图6、注册成功,可以关掉



第二步部署

这一步也可以先行,因为它会把你带到heroku注册页面。
访问Github项目地址(原帖已经删除源码):
https://github.com/HappysurfBlocking/fetch-bak
图7


图8、你可以选择美国或欧洲,先选一个部署成功后再增加多一个APP,这样就有两个国家的IP啦


图9


图10、可以用楼主的测试一下,想用还是自己动手啦,我说不定会什么时候删



第三步goproxy的下载与设置

不想麻烦可以下载原帖的版本,比较老了,需要手动最小化到托盘。
百度盘:http://pan.baidu.com/s/1eQUTKrC 解压密码:gochrome.info

楼主还是建议到原作者phu那里下载,感谢phu大神编写的goproxy,非常完美。地址:
https://github.com/phuslu/goproxy/releases/tag/goproxy
图11


下载后首选解压, 我们需要修改里面的php.json文件
“URL”:”图10你的地址/index.do” 注意要替换你的网址哦。这个地址为“https://你部署时的名称.herokuapp.com/index.go”
“SSLVerify”:true
图12



再修改httpproxy.json文件
修改第三行: “Enabled”:false

修改”PHP”: 下面一行:

“Enabled”:true

“Address”: “127.0.0.1:8087”
图13


修改完成后,双击 goproxy-gui.exe 运行,屏幕右下角会显示个小图标。


第四步配置

本地代理地址: 127.0.0.1:8088

PAC代理地址:http://127.0.0.1:8088/proxy.pac
图14


图15


也可以借助浏览器插件管理起来,非常方便。
图16



测速,看油管视频为什么不行?其实看速度是不错的,却是忽高忽低,过山车一样,高的时候四五百K,低的时候二三十K。



测速2,速度相当高,当然是全局代理,在浏览器内下载,却能跑满楼主的带宽,不信去下面的动图集地址测试一下,可油管视频为什么不行呢?请高手来解答一下啦!
动图集,非常之吸流量:http://cc.zzzhhh.co/htm_data/7/1606/1954400.html

Tuesday, June 7, 2016

说说DLNA手机电脑视频互通

老夫聊发少年狂,折腾了一下DLNA,来实现手机看电脑硬盘里的视频,和电脑看手机上的照片这类功能。
如果你也研究过,你会发现网上百分90的教程与WMP有关,我没用这货,深感微软家的程序不好用,写点经验。
我自己是用的TwonkyServer+ Powerdvd+ BubbleUPNP+ VPlayer,实现电脑和安卓手机的互通,如果你想安卓手机之间互通,一个BubbleUPNP足矣,果系设备手边没有,不知道他们是不是AirPlay就好。

懒得很,不想写教程,网上有个很好的,大同小异。
http://bbs.zhiyoo.com/thread-5139074-1-1.html

下面我的推荐列表里的东西已经分享到百度云了
链接: http://pan.baidu.com/s/1o86GnJO 密码: yijn

推荐列表

Windows:
1、TwonkyServer;PC端服务器;轻巧简单,推荐
2、HomeMediaCenter;PC端服务器;绿色环保,备用
3、Powerdvd;PC端播放器;界面相对友好,推荐
4、Kodi;PC端播放器;界面适合电视机,全平台支持,切换中文界面记得先设置好System-Appearance-Skin-Fonts-Arial based,玩过的一般知道,备用

Android:
1、BubbleUPNP(建议安装专业版Key);安卓端服务器/安卓端播放器;旧版本比新版本清爽很多,推荐
2、Servers Ultimate(需安装插件A);安卓端服务器;很强大的小家伙,DLNA服务器功能很恰到好处,推荐
3、VPlayer(需安装uPnP插件);安卓端播放器;国产精品,合我口味,推荐
4、Allconnect;安卓端遥控器;比如可以让用手机A控制电视B播放电脑C上的内容

淘汰列表:

Windows:
1、Window Media Player;PC端播放器;如果你能忍受的了那烦人的设置并且装扩展包来增强格式支持,你可以选择它
2、Allshare;PC端播放器;上世纪的奇葩设计产物很低能,体积大但格式支持不强大,渣
3、Jriver;PC端服务器;不好用
4、Serviio;PC端服务器;反应慢
5、Plex;PC端服务器;太臃肿,功能多到用不到
6、迅雷看看/暴风影音/搜狐影音;老是找不到DLNA设备,莫名其妙,弃

Android:
1、Media Cast;安卓端服务器;效果不好
2、Skifta;安卓端服务器;对简体中文支持不好
3、MobileMedia;安卓端服务器;闪退
4、SoftMediaServer;安卓端服务器;其实还不错,但文件全都混在一起,不能按目录区分,不推荐
5、AirWire;安卓端服务器;无法显示所共享的内容
6、Air Play;安卓端播放器;界面挤压成一团,不知道怎么码出来的
7、AirPinCast;安卓端遥控器;国人开发出来的东西,不会用
8、LocalCast;安卓端遥控器;支持smb,无感

===============================================================

Wednesday, December 16, 2015

虚拟电话短信接收

虚拟身份信息在线生成:http://www.fakenamegenerator.com/,可以生成详细身份信息,如姓名、地址、电话、职业、身高血型、社会证件号码等各种信息,并且生成的虚拟电邮地址是可用的,方便接收激活邮件临时使用。这个暂时不支持生成中国的身份证信息,不过网上这种身份证号码生成有很多,大家可以搜索一下。
手机验证码在线接收:http://pinger.com/textfree/,这是一家提供免费短信服务的美国公司,用户注册一个帐号可以免费获取一个属于美国的手机号码,登录后可以用来免费发送和接收短信。除了在线网页版外,这家公司还提供有Android、iPod、iPhone的相关应用,在应用上可以使用更多功能。

MobileInChina是中国的虚拟电话号码提供商:http://www.mobileinchina.cn/ 可以在世界任何地方接收短信,注册的号码属于中国手机号。和真手机号码一样。可以拨号接听 发送和接收短信。

http://www.heywire.com/是一个获取真正美国手机号码与发国际短信的应用,相当于国内的飞信。 同样也可以用于接收短信。

接收短信的虚拟号-有美英法西班牙等国家的号码
打开lleida.net官方网站http://www.lleida.net/en/,点Virtual Numbers for SMS and MMS,填写你的申请资料就可以了,只要邮箱和手机号码正确就可以了,google voice和国内手机号码都可以申请,注册号码格式就可以了。提交之后,lleida.net会给你的手机发送短信验证码,通过验证之后,lleida.net再把帐号资料发送到你的邮箱。登录http://websms.lleida.net/就可以接收和发送短信了。

另外一个可以到 virtualphoneline 注册个账号获得美国虚拟手机号。登录后访问http://www.virtualphoneline.com/MyNumbers.php ,然后设置转发到SKpye上,就可以接收短信了。

From: http://www.douban.com/note/455558240/


虚拟手机号码接收验证短信-翻墙注册必备
Posted on 2013 年 10 月 1 日 by 翻墙博客
再有在中共严查网络的今天,保护自己就变得非常重要了。翻墙注册国内的帐号,然后在国内网站狂草共匪,唤醒国人。这离不开VPN和接收注册验证码的免费国外电话号码。

现今的网络时代,每个人都应该保护好自己的个人资料不被泄露。而在平时一些网络账户注册时,除像电子邮箱、在线支付这些重要账户外,其它一般都不建议全部填写个人真实信息,因为你并不知道这些网站是否可以保障到你的个人资料安全。

另外平时上网活动也要注意这些问题,比如常见的网上留电子邮箱地址,这个就比较大意了,因为别人可以通过网络抓取工具获取这些信息,以用来滥发广告垃圾邮件。如果要留,最好做成图片形式再留。当然,以上只是一个简单举例,更多时候还是要靠我们平时有这个意识。

下面介绍两个应对注册问题的给力工具,一个是可以虚拟生成个人身份信息,第二个是可以在线接收手机验证码。

虚拟身份信息在线生成:http://www.fakenamegenerator.com/,可以生成详细身份信息,如姓名、地址、电话、职业、身高血型、社会证件号码等各种信息,并且生成的虚拟电邮地址是可用的,方便接收激活邮件临时使用。这个暂时不支持生成中国的身份证信息,不过网上这种身份证号码生成有很多,大家可以搜索一下。

方法一:

手机验证码在线接收:http://pinger.com/tfw/,这是一家提供免费短信服务的美国公司,随便用一个美国的区号就可以注册,如NEW YORK 的区号“10001”,用户注册一个帐号可以免费获取一个属于美国的手机号码,,登录后可以用来免费发送和接收短信。除了在线网页版外,这家公司还提供有Android、iPod、iPhone的相关应用,在应用上可以使用更多功能。

 方法二:

Google Voice 早已不新鲜,但是它实在太好用,再次推广下。有时候某些美国网站或移动App要求注册时必须使用手机号接收验证码,于是广大非美帝人民就被硬生生挡在了外面。有 Google Voice 就好办了,这是 Google 提供的全功能虚拟美国手机号码服务,可以用它收发短信、拨打接听电话、接收语音邮件等。而且只要对方是美国或加拿大用户、那么不管是短信还是电话全部免费。当然它也能给美国/加拿大以外的用户打国际电话,而且费用超低,比如打到内地或香港只要2美分每分钟!(查看Google Voice国际电话收费标准)

可惜这么好的服务仅限美国或加拿大使用,要注册的话还是需要一定手段。几天前笔者刚好多注册了一个新号,但是当时没截图,抱歉只能用文字说明大致步骤。

第一步: 首先挂V,保证是美国/加拿大IP。

第二步: 访问Google Voice,使用Google账号登陆。

第三步: 要求填入美国手机号码进行验证。这是最关键也是最麻烦的一步了。你需要填入美国手机号码,然后Google Voice给你打电话,告诉你两位验证码。然后正确填写两位验证码才能通过这一步。可以到virtualphoneline注册个账号获得美国虚拟手机号。登录后访问 http://www.virtualphoneline.com/MyNumbers.php ,最左边的就是你的美国手机号,然后点击【Forwarded To】这一列,选择Google,填入Gmail 邮箱 地址。这样的话所有打到这个号码的电话都会转发到Google Talk上。除了Google,也可以转发到Skype、 MSN上。

方法三:

HeyWire 与 TextFree 是可以用来可获取真正美国手机号码与发国际短信的应用,相当于国内的飞信。(在我们购买只对美国人开放的东西的时候可以用!)在有些时候,我们需要通过手机短信验证身份,而服务商又不支持国内电话,这就大大方便了我们。

HeyWire

支持中文短信,本软件注册后会分配你一个美国的虚拟号码,此后发送短息到其它手机免费。(走GPRS/WIFI流量)
1、如果对方也安装了这个软件,发送和回复都是免费的。
2、如果对方没有安装这个软件,你发送免费,对方回复相当于回复到美国的手机,运营商收取费用1元/条。
3、接收方不必是你的好友(请不要用来发骚扰短信啊,引起问题后果自负啊)
4、国内可以发给移动比较好,发给联通、电信听说好像有点问题,大家自己测把。
软件说明HeyWire支持android,HeyWire支持免费给全球114个国家360家运营商发送短信,而且支持多种语言。
地纸:http://www.heywire.com/

lleida.net是 一家西班牙的电信公司,公司地址在业伊达,主要业务是国际网络短信服务。目前,lleida.net推出免费的短信虚拟号服务。这是一个可以发送短信,也 可以接收短信的电话号码,目前提供美国、英国、法国和西班牙四个国家的虚拟号码。lleida.net对新注册用户都免费赠送20点信用,可以用来发送免 费国际短信,显示的是你的虚拟号码,不过每个国家的费率不一样,发送的条数也不一样,lxvoip测试发送中国的费率是一条1.17,而发送到美国只需要 0.25。据凌霄电话论坛坛友反映,lleida.net接收到发送都很快。

注册也比较简单,打开lleida.net官方网站http://www.lleida.net/en/,点Virtual Numbers for SMS and MMS,填写你的申请资料就可以了,只要邮箱和手机号码正确就可以了,google voice和国内手机号码都可以申请,注册号码格式就可以了。提交之后,lleida.net会给你的手机发送短信验证码,通过验证之后,lleida.net再把帐号资料发送到你的邮箱。登录http://websms.lleida.net/就可以接收和发送短信了。


申请地址:www.lleida.net

From: https://plus.google.com/+%E9%99%88%E5%B0%8F%E5%86%9B/posts/8PcNH7jMGrK

转发国内SMS信息到你的邮箱

著作权归作者所有。
商业转载请联系作者获得授权,非商业转载请注明出处。
作者:Rix Tox
链接:http://www.zhihu.com/question/22767554/answer/38517186
来源:知乎

我要介绍的方法能做到不注册新的手机号,不用重新绑定国内原有的账号,只接收短信不产生任何漫游通话和数据费用,不用另外购买一台手机,或者专门使用一台双卡双待手机,不用每次接收短信都要换一次SIM卡,也不用担心接错国际长途电话的情况。

有些要求和限制必须事先声明一下:使用本方法必须持有国内的手机卡。手机号不一定要买漫游套餐,但是必须开通漫游服务。如果仅接收短信是不收取费用的,但是发短信、通话和使用数据是会产生费用的,但是不用担心,我会讲到如何禁止这些收费项目。当然,本方法涉及到Linux的操作、配置和使用,请量力而行。本文只是提供一个详细的思路,并不是手把手教程,如果有不清楚的地方请移步底部的外部链接。另外,使用本文所述信息所作的任何行为、造成的任何后果都需要读者自己承担,请谨慎行事!

如果一切顺利,你最终会得到这样一部小型设备接收并转发你所有的国内SMS信息到你的邮箱:

Step 0. ebay
你所需要的设备在任何一个国家都能在网上买到:
  1. [38.95 USD] Raspberry Pi B+,Micro SD 4GB+ (仅是为了搭建一个可以一直运行的平台,如果你拥有一台可以作为Linux服务器的硬件设备则可以直接用你现成的)
  2. [31.44 USD] 华为的3G无线网卡(需要从这个列表中找一个你能买到的,我用的是Huawei E1750

Step 1. Unlock
拿到华为3G网卡后先要进行解锁,否则只能使用国内的提供商,在海外是搜不到信号的。
具体如何解锁,不同的型号需要用不同的解锁程序,具体的工具请自行Google:unlock HUAWEI XXXXX(你的网卡型号)。

但是基本的流程大都是先从网卡设备上面找到一串15位的IMEI序列号。

然后使用算号程序生成一个UNLOCK密码。

然后使用解锁程序进行解锁。

有些设备还可能需要刷一下Firmware,就顺带着刷一下吧,用的是上面生成的FLASH密码。

这只是对无线网卡进行解锁,我们还需要对SIM卡进行解锁——禁用PIN码验证。操作方法可以用随便一台手机装上SIM卡,然后在设置里面关闭PIN码就好,或者可以把SIM卡装进网卡,在PC上安装相应的3G客户端程序,然后在设置里面禁用掉PIN就好。联通SIM卡的默认PIN是1234。
好了,你的网卡+SIM卡组合就已经准备完善了,接下来就是配置树莓派了。

Step 2. RasPBX
首先我们要将一套预装了Asterisk的RasPBX Linux系统写入到Micro SD卡中。下载RasPBX镜像文件,在Windows上可以使用Win32 Disk Imager程序把img文件写入到SD卡上。如果你的SD卡远大于4GB,那么可以使用Linux下的gparted工具把最后一个ext4分区resize一下。

把Micro SD插入树莓派,然后连上HDMI、USB键盘、USB无线网卡或有线网路,然后插上电源启动即可。然后跟着RasPBX Documentation页面的步骤进行初步的配置就好。

最主要的部分是exim4的配置,这个设置的是邮件发送服务器,我用的是Gmail,所以Mail Server写的是smtp.gmail.com::587,可以跟着这个页面的说明进行配置。Gmail的话在登录认证的SMTP_HOSTNAME部分最好写成*.google.com。

配置完后可以用send_test_mail [email protected]发一封测试邮件试试,如果你收到这样的邮件就说明配置成功了:

Step 3. Dongle
现在可以给树莓派插入你安装了SIM卡的3G无线网卡了。

先用ls /dev/ttyUSB*看看系统有没有将网卡识别成输入输出设备,如果什么都没有列出来就没有识别成功,但是这是正常的情况,因为大部分网卡都提供了一个Micro SD的插槽,使得它可以变身成一个移动储存设备,所以有时候会把它识别成一个U盘。这个时候我们就需要用usb_modeswitch工具切换一下网卡的识别模式。先使用lsusb命令(没有的话安装usbutils包)看一下网卡的厂家编号和产品编号:
root@raspbx ~# lsusb
Bus 001 Device 005: ID 0bda:8178 Realtek Semiconductor Corp. RTL8192CU 802.11n WLAN Adapter
Bus 001 Device 006: ID 12d1:1446 Huawei Technologies Co., Ltd. E1552/E1800/E173 (HSPA modem)
Bus 001 Device 004: ID 046d:c52b Logitech, Inc. Unifying Receiver
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
可以看到我的E1750的VendorID是12d1,ProductID是1446,然后使用usb_modeswitch切换模式
root@raspbx ~# usb_modeswitch -v 12d1 -p 1446 -W -J
Take all parameters from the command line


 * usb_modeswitch: handle USB devices with multiple modes
 * Version 2.2.0 (C) Josua Dietze 2014
 * Based on libusb1/libusbx

 ! PLEASE REPORT NEW CONFIGURATIONS !

DefaultVendor=  0x12d1
DefaultProduct= 0x1446
HuaweiNewMode=1
NeedResponse=0

Look for default devices ...
  found USB ID 0bda:8178
  found USB ID 12d1:1446
   vendor ID matched
   product ID matched
  found USB ID 046d:c52b
  found USB ID 0424:ec00
  found USB ID 0424:9514
  found USB ID 1d6b:0002
 Found devices in default mode (1)
Access device 006 on bus 001
Current configuration number is 1
Use interface number 0
Use endpoints 0x01 (out) and 0x81 (in)

USB description data (for identification)
-------------------------
Manufacturer: HUAWEI Technology
     Product: HUAWEI Mobile
  Serial No.: not provided
-------------------------
Using standard Huawei switching message
Looking for active driver ...
 OK, driver detached
Set up interface 0
Use endpoint 0x01 for message sending ...
Trying to send message 1 to endpoint 0x01 ...
 OK, message successfully sent
Reset response endpoint 0x81
libusb: error [op_clear_halt] clear_halt failed error -1 errno 71
 Could not reset endpoint (probably harmless): -99
Reset message endpoint 0x01
libusb: error [op_clear_halt] clear_halt failed error -1 errno 71
 Could not reset endpoint (probably harmless): -99
-> Run lsusb to note any changes. Bye!
然后再看一下lsusb的结果:
root@raspbx ~# lsusb
Bus 001 Device 005: ID 0bda:8178 Realtek Semiconductor Corp. RTL8192CU 802.11n WLAN Adapter
Bus 001 Device 007: ID 12d1:1001 Huawei Technologies Co., Ltd. E169/E620/E800 HSDPA Modem
Bus 001 Device 004: ID 046d:c52b Logitech, Inc. Unifying Receiver
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
会发现网卡的产品标识变了,现在再看tty设备列表就能看到了:
root@raspbx ~# ls -l /dev/ttyUSB*
crw-rw-rw- 1 root dialout 188, 0 Jan 30 20:11 /dev/ttyUSB0
crw-rw-rw- 1 root dialout 188, 1 Jan 30 20:11 /dev/ttyUSB1
crw-rw-rw- 1 root dialout 188, 2 Jan 30 20:16 /dev/ttyUSB2
这一部分可以写一个udev的rule来自动化,不需要每次插入设备都手动执行,具体的方式见底部链接。然后我们要配置这个网卡,让Asterisk能自动将收到的SMS信息转发到邮箱。
root@raspbx ~# install-dongle
Installing GSM VoIP gateway with chan_dongle.
Please read the documentation at http://raspbx.org/dongle

Please enter the phone number of your SIM card
(defaults to +1234567890 if left blank): +8618688888888
Send incoming SMS to email address
(leave empty to disable SMS forwarding): [email protected]
Forward incoming SMS to mobile phone number (via dongle0)
(leave empty to disable):
Reading package lists... Done
Building dependency tree
Reading state information... Done
usb-modeswitch is already the newest version.
asterisk11-chandongle is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Saving previous contents of /etc/asterisk/extensions_custom.conf to /etc/asterisk/extensions_custom.conf.orig

Would you like to install a webpage for sending SMS with
chan_dongle? (http://raspbx/sms/) [y/N] y
Enter password for SMS page: password

Please wait...


STOPPING ASTERISK
Waiting for Asterisk to Stop Gracefully...

Asterisk Stopped

SETTING FILE PERMISSIONS.............Done
Removing any dangling symlinks
Dangling symlinks removed

STARTING ASTERISK
Asterisk Started
Reloading Asterisk because of Dynamic Hints
Your configuration has been saved successfully to these files:
/etc/asterisk/dongle.conf
然后我们进入Asterisk终端启动SIM卡的GPRS Only模式(AT^SYSCFG=13,1,3FFFFFFF,1,2就是设置模式的命令,其他的命令可以在这个网页查到),只收取SMS和Voice信息,不使用数据。然后由于我们没有设置VoiceMail所以不会产生通话费用。
root@raspbx ~# asterisk -r
Asterisk 11.15.0, Copyright (C) 1999 - 2013 Digium, Inc. and others.
Created by Mark Spencer <[email protected]>
Asterisk comes with ABSOLUTELY NO WARRANTY; type 'core show warranty' for details.
This is free software, with components licensed under the GNU General Public
License version 2 and other licenses; you are welcome to redistribute it under
certain conditions. Type 'core show license' for details.
=========================================================================
Running under group 'dialout'
Connected to Asterisk 11.15.0 currently running on raspbx (pid = 5345)
raspbx*CLI> dongle show devices
ID           Group State      RSSI Mode Submode Provider Name  Model      Firmware          IMEI             IMSI             Number
dongle0      0     Free       20   3    3       AT&T           E1750      11.126.13.00.00   354818043592804  460016366644531  +8618688888888
raspbx*CLI> dongle cmd dongle0 AT^SYSCFG=13,1,3FFFFFFF,1,2
[dongle0] 'AT^SYSCFG=13,1,3FFFFFFF,1,2' Command queued for execute
[2015-01-30 20:44:25] NOTICE[5461]: at_response.c:1719 at_response: [dongle0] Got Response for user's command:'OK'
现在打开你的邮箱就可以看到转发的SMS信息了。
百度的验证码是我随手点来测试用的。有了这样的设备环境就再也不用愁在国外因为收不到验证码而用不了国内的网络服务了。

外部链接
[1]. GSM VoIP Gateway with Chan_dongle
[2]. RasPBX Documentation
[3]. Adding a Huawei 1552 to Asterisk
[4]. All Modem 3G Unlocker: How to unlock Huawei 3G Modem E173, E1550 and E1750
[5]. 50-huawei-e1750.rules

From http://www.zhihu.com/question/22767554

我是如何让WebHostingPad上的博客提速3倍

From: http://lusongsong.com/reed/1621.html
主机是一个网站的硬件基础,所以主机十分重要,这次就来讲讲美国主机的优化,美国主机由于免备案, 功能丰富等原因, 一直是个人搭建博客或个人网站的不错之选。不过其访问速度相对于国内主机和香港主机来说会慢一些。以下将分享一下对托管在WebHostingPad上的WordPress博客的优化过程,让你在使用美国主机的服务时,你的博客在国内也可以飞快的访问。
为什么是WebHostingPad
使用WebHostingPad的原因很简单,价格是主要原因,毕竟只要1.99美元每月,带SSD存储,还赠送一个域名。另外,他们还有中文网站(cn.webhostingpad.com),而且在支付方式上也能用支付宝等。所以,个人感觉WebHostingPad对中国大陆市场还是相当重视,性价比不错。
美国主机
WordPress优化前速度
在针对国内访问进行优化之前,我们已经对WordPress做了一些基本的性能优化,比如使用Cache等。我在博客上安装了WP Super Cache (你也可以用其他Cache插件,就不介绍了)。初始WebHostingPad的WordPress页面加载速度怎么样呢?我们用360的奇云测测试了一下,数据中规中矩,在北京的用户下载速度基本上在12KB/s到17KB/s之间,ping的速度在230ms~280ms之间, WordPress页面打开速度耗时2S~5s。
虽然使用Cache可以加快网页的生成速度,不过针对托管在美国主机上的WordPress站点而言,WordPress自身优化固然重要,然而国内访问的瓶颈在于文件的下载速度慢,还有DNS服务器的解析速度也慢等。以下我们就介绍两个方案来解决这两个问题。
使用七牛云来实现静态文件CDN加速
把博客上的静态文件存在到国内的云存储上是个不错的方案,这样图片等就相当于国内下载了,速度一定会提升很多。在云存储上,我选用了七牛云,主要原因其实很简单,七牛有针对WordPress的插件(http://blog.wpjam.com/project/wpjam-qiniutek/),免得自己再写一堆代码。该WordPress插件支持一键将现有的WordPress图片等直接转到七牛上,而且未来上传图片也是保存到七牛。
七牛提供10GB的永久免费存储和每月10GB下载流量。对于个人博客来说,基本上就是免费使用了。
七牛云
使用DNSPOD来提升域名解析的速度和稳定性
其实用了七牛云存储后,WordPress的打开速度就已经很快了。用DNSPOD主要是为了解决美国主机商DNS服务器不稳定和解析速度慢的问题。我用的是它的专业版,不过一般情况下用免费版也可以。
域名解析
WordPress优化后速度测试
优化后效果怎么样呢?我们还是用奇云测检测了一下,国内下载速度最快达到了65KB/s左右,绝大部分的下载速度都在40KB/s-50KB/s, 在这个速度下你的访问者基本上感觉不到等待时间,和国内绝大部分网站的速度体验差不多了。
平均速度排行
开始用美国主机来建博客吧!
美国主机一直是国内站长建站的首选,以上方案也很好的解决了其访问速度不够快的问题。 即使你不用七牛,或者WordPress,你也可以通过提升图片等静态文件的下载速度还有改善DNS解析等方法来提高你的网站的性能和稳定性。
在选择美国主机上,个人推荐选用WebHostingPad,Inmotion Hosting,Bluehost等口碑比较好而且提供中文管理界面等。另外他们在价格上都比较厚道,以WebHostingPad为例,目前正在做大促销,价格低到1.99美元/月, 折合人民币才150元每年,和国内的那些虚拟主机比,可以说是绝对的物超所值。

Friday, July 31, 2015

一次非常有意思的 SQL 优化经历

场景

我用的数据库是mysql5.6,下面简单的介绍下场景。
文/风过无痕-唐
课程表
SQL优化 数据库优化
create table Course(

c_id int PRIMARY KEY,

name varchar(10)

)
SQL优化 数据库优化
数据100条
学生表:
SQL优化 数据库优化
create table Student(

id int PRIMARY KEY,name varchar(10)
)
SQL优化 数据库优化
数据70000条
学生成绩表SC
SQL优化 数据库优化
CREATE table SC(
    sc_id int PRIMARY KEY,
    s_id int,
    c_id int,
    score int
)
SQL优化 数据库优化
数据70w条
查询目的:
查找语文考100分的考生
查询语句:
select s.* from Student s 
where s.s_id in (select s_id from SC sc where sc.c_id = 0 and sc.score = 100 )
执行时间:30248.271s
晕,为什么这么慢,先来查看下查询计划:
EXPLAIN select s.* from Student s where s.s_id in (select s_id from SC sc where sc.c_id = 0 and sc.score = 100 )
SQL优化 数据库优化
发现没有用到索引,type全是ALL,那么首先想到的就是建立一个索引,建立索引的字段当然是在where条件的字段。
先给sc表的c_id和score建个索引
CREATE index sc_c_id_index on SC(c_id);
CREATE index sc_score_index on SC(score);
再次执行上述查询语句,时间为: 1.054s
快了3w多倍,大大缩短了查询时间,看来索引能极大程度的提高查询效率,建索引很有必要,很多时候都忘记建
索引了,数据量小的的时候压根没感觉,这优化的感觉挺爽。
但是1s的时间还是太长了,还能进行优化吗,仔细看执行计划:
SQL优化 数据库优化
查看优化后的sql:
SQL优化 数据库优化
SELECT
    `YSB`.`s`.`s_id` AS `s_id`, 
   `YSB`.`s`.`name` AS `name`

FROM
    `YSB`.`Student` `s`
WHERE
    < in_optimizer > (
        `YSB`.`s`.`s_id` ,< EXISTS > (
            SELECT
                1
            FROM
                `YSB`.`SC` `sc`
            WHERE
                (
                    (`YSB`.`sc`.`c_id` = 0)
                    AND (`YSB`.`sc`.`score` = 100)
                    AND (
                        < CACHE > (`YSB`.`s`.`s_id`) = `YSB`.`sc`.`s_id`
                    )
                )
        )
    )
SQL优化 数据库优化
补充:这里有网友问怎么查看优化后的语句
方法如下:
在命令窗口执行 SQL优化 数据库优化
SQL优化 数据库优化
有type=all
按照我之前的想法,该sql的执行的顺序应该是先执行子查询
select s_id from SC sc where sc.c_id = 0 and sc.score = 100
耗时:0.001s
得到如下结果:
SQL优化 数据库优化
然后再执行
select s.* from Student s where s.s_id in(7,29,5000)
耗时:0.001s
这样就是相当快了啊,Mysql竟然不是先执行里层的查询,而是将sql优化成了exists子句,并出现了EPENDENT SUBQUERY,
mysql是先执行外层查询,再执行里层的查询,这样就要循环70007*8次。
那么改用连接查询呢?
SQL优化 数据库优化
SELECT s.* from 

Student s

INNER JOIN SC sc

on sc.s_id = s.s_id

where sc.c_id=0 and sc.score=100
SQL优化 数据库优化
这里为了重新分析连接查询的情况,先暂时删除索引sc_c_id_index,sc_score_index
执行时间是:0.057s
效率有所提高,看看执行计划:
SQL优化 数据库优化
这里有连表的情况出现,我猜想是不是要给sc表的s_id建立个索引
CREATE index sc_s_id_index on SC(s_id);
show index from SC
SQL优化 数据库优化
在执行连接查询
时间: 1.076s,竟然时间还变长了,什么原因?查看执行计划:
SQL优化 数据库优化
优化后的查询语句为:
SQL优化 数据库优化
SELECT
    `YSB`.`s`.`s_id` AS `s_id`,
    `YSB`.`s`.`name` AS `name`FROM
    `YSB`.`Student` `s`
JOIN `YSB`.`SC` `sc`
WHERE
    (
        (
            `YSB`.`sc`.`s_id` = `YSB`.`s`.`s_id`
        )
        AND (`YSB`.`sc`.`score` = 100)
        AND (`YSB`.`sc`.`c_id` = 0)
    )
SQL优化 数据库优化
貌似是先做的连接查询,再进行的where条件过滤
回到前面的执行计划:
SQL优化 数据库优化
这里是先做的where条件过滤,再做连表,执行计划还不是固定的,那么我们先看下标准的sql执行顺序:
SQL优化 数据库优化
正常情况下是先join再进行where过滤,但是我们这里的情况,如果先join,将会有70w条数据发送join做操,因此先执行where


过滤是明智方案,现在为了排除mysql的查询优化,我自己写一条优化后的sql
SQL优化 数据库优化
SELECT
    s.*
FROM
    (
        SELECT
            *
        FROM
            SC sc
        WHERE
            sc.c_id = 0
        AND sc.score = 100
    ) t
INNER JOIN Student s ON t.s_id = s.s_id
SQL优化 数据库优化
即先执行sc表的过滤,再进行表连接,执行时间为:0.054s
和之前没有建s_id索引的时间差不多
查看执行计划:
SQL优化 数据库优化
先提取sc再连表,这样效率就高多了,现在的问题是提取sc的时候出现了扫描表,那么现在可以明确需要建立相关索引
CREATE index sc_c_id_index on SC(c_id);
CREATE index sc_score_index on SC(score);
再执行查询:
SQL优化 数据库优化
SELECT
    s.*
FROM
    (
        SELECT
            *
        FROM
            SC sc
        WHERE
            sc.c_id = 0
        AND sc.score = 100
    ) t

INNER JOIN Student s ON t.s_id = s.s_id
SQL优化 数据库优化
执行时间为:0.001s,这个时间相当靠谱,快了50倍
执行计划:
SQL优化 数据库优化
我们会看到,先提取sc,再连表,都用到了索引。
那么再来执行下sql
SQL优化 数据库优化
SELECT s.* 

from Student s

INNER JOIN SC sc

on sc.s_id = s.s_id

where sc.c_id=0 and sc.score=100
SQL优化 数据库优化
执行时间0.001s
执行计划:
SQL优化 数据库优化
这里是mysql进行了查询语句优化,先执行了where过滤,再执行连接操作,且都用到了索引。

2015-04-30日补充:最近又重新导入一些生产数据,经测试发现,前几天优化完的sql执行效率又变低了
调整内容为SC表的数据增长到300W,学生分数更为离散。
先回顾下:
show index from SC
SQL优化 数据库优化
执行sql
SQL优化 数据库优化
SELECT s.* from 

Student s

INNER JOIN SC sc

on sc.s_id = s.s_id

where sc.c_id=81 and sc.score=84
SQL优化 数据库优化
执行时间:0.061s,这个时间稍微慢了点
执行计划:
SQL优化 数据库优化
这里用到了intersect并集操作,即两个索引同时检索的结果再求并集,再看字段score和c_id的区分度,
单从一个字段看,区分度都不是很大,从SC表检索,c_id=81检索的结果是70001,score=84的结果是39425
而c_id=81 and score=84 的结果是897,即这两个字段联合起来的区分度是比较高的,因此建立联合索引查询效率
将会更高,从另外一个角度看,该表的数据是300w,以后会更多,就索引存储而言,都是不小的数目,随着数据量的
增加,索引就不能全部加载到内存,而是要从磁盘去读取,这样索引的个数越多,读磁盘的开销就越大,因此根据具体
业务情况建立多列的联合索引是必要的,那么我们来试试吧。
alter table SC drop index sc_c_id_index;
alter table SC drop index sc_score_index;
create index sc_c_id_score_index on SC(c_id,score);
执行上述查询语句,消耗时间为:0.007s,这个速度还是可以接收的
执行计划:
SQL优化 数据库优化
该语句的优化暂时告一段落
总结:
1.mysql嵌套子查询效率确实比较低
2.可以将其优化成连接查询
3.连接表时,可以先用where条件对表进行过滤,然后做表连接
(虽然mysql会对连表语句做优化)
4.建立合适的索引,必要时建立多列联合索引
5.学会分析sql执行计划,mysql会对sql进行优化,所以分析执行计划很重要

索引优化

上面讲到子查询的优化,以及如何建立索引,而且在多个字段索引时,分别对字段建立了单个索引
后面发现其实建立联合索引效率会更高,尤其是在数据量较大,单个列区分度不高的情况下。

单列索引

查询语句如下:
select * from user_test_copy where sex = 2 and type = 2 and age = 10
索引:
CREATE index user_test_index_sex on user_test_copy(sex);
CREATE index user_test_index_type on user_test_copy(type);

CREATE index user_test_index_age on user_test_copy(age);
分别对sex,type,age字段做了索引,数据量为300w,查询时间:0.415s
执行计划:
SQL优化 数据库优化
发现type=index_merge
这是mysql对多个单列索引的优化,对结果集采用intersect并集操作

多列索引

我们可以在这3个列上建立多列索引,将表copy一份以便做测试
create index user_test_index_sex_type_age on user_test(sex,type,age);
查询语句:
select * from user_test where sex = 2 and type = 2 and age = 10
执行时间:0.032s,快了10多倍,且多列索引的区分度越高,提高的速度也越多
执行计划:
SQL优化 数据库优化
最左前缀
多列索引还有最左前缀的特性:
执行一下语句:
select * from user_test where sex = 2
select * from user_test where sex = 2 and type = 2
select * from user_test where sex = 2 and age = 10
都会使用到索引,即索引的第一个字段sex要出现在where条件中

索引覆盖

就是查询的列都建立了索引,这样在获取结果集的时候不用再去磁盘获取其它列的数据,直接返回索引数据即可
如:
select sex,type,age from user_test where sex = 2 and type = 2 and age = 10
执行时间:0.003s
要比取所有字段快的多

排序

select * from user_test where sex = 2 and type = 2 ORDER BY user_name
时间:0.139s
在排序字段上建立索引会提高排序的效率
create index user_name_index on user_test(user_name)
最后附上一些sql调优的总结,以后有时间再深入研究
1. 列类型尽量定义成数值类型,且长度尽可能短,如主键和外键,类型字段等等
2. 建立单列索引
3. 根据需要建立多列联合索引
当单个列过滤之后还有很多数据,那么索引的效率将会比较低,即列的区分度较低,
那么如果在多个列上建立索引,那么多个列的区分度就大多了,将会有显著的效率提高。
4. 根据业务场景建立覆盖索引
只查询业务需要的字段,如果这些字段被索引覆盖,将极大的提高查询效率
5. 多表连接的字段上需要建立索引
这样可以极大的提高表连接的效率
6. where条件字段上需要建立索引
7. 排序字段上需要建立索引
8. 分组字段上需要建立索引
9. Where条件上不要使用运算函数,以免索引失效

From:
http://www.chinaz.com/web/2015/0505/403573_2.shtml

YouTube Channel