摘要:
为什么要分表和分区? 日常开发中我们经常会遇到大表的情况,所谓的大表是指存储了百万级乃至千万级条记录的表。这样的表过于庞大,导致数据库在查询和插入的时候耗时太长,性能低下,如果涉及联合查询的情况,性能会更加糟糕。分表和表分区的目的就是减少数据库的负担,提高数据库的效率,通常点来讲就是提高表的增删改查 阅读全文
摘要:
现状:项目中一直遗留着一个问题,接口请求安全性问题。项目中的接口都是不设防的,一直都没校验请求的合法性。需要达到的目的:过滤非本身app发出的请求,服务器能校验到客户端请求的合法性。解决方案:1.直接上https(可以避免抓包);2.采用接口请求带上校验参数。本文是通过【2.采用接口请求带上校验参数 阅读全文
摘要:
针对 >非开放性平台 >公司内部产品 接口特点汇总:1、因为是非开放性的,所以所有的接口都是封闭的,只对公司内部的产品有效;2、因为是非开放性的,所以OAuth那套协议是行不通的,因为没有中间用户的授权过程;3、有点接口需要用户登录才能访问;4、有点接口不需要用户登录就可访问; 针对以上特点,移动端 阅读全文
摘要:
作为免费又高效的数据库,mysql基本是首选。良好的安全连接,自带查询解析、sql语句优化,使用读写锁(细化到行)、事物隔离和多版本并发控制提高并发,完备的事务日志记录,强大的存储引擎提供高效查询(表记录可达百万级),如果是InnoDB,还可在崩溃后进行完整的恢复,优点非常多。即使有这么多优点,仍依 阅读全文
摘要:
1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。 2.应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描。 3.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引 阅读全文
摘要:
在开发过程中,肯定会有和第三方或者app端的接口调用。在调用的时候,如何来保证非法链接或者恶意攻击呢? 1.签名 根据用户名或者用户id,结合用户的ip或者设备号,生成一个token。在请求后台,后台获取http的head中的token,校验是否合法(和数据库或者Redis中记录的是否一致,在登录或 阅读全文
摘要:
一、利用Google API生成二维码 Google提供了较为完善的二维码生成接口,调用API接口很简单,以下是调用代码: 二、使用PHP二维码生成类库PHP QR Code生成二维码 PHP QR Code是一个PHP二维码生成类库,利用它可以轻松生成二维码,官网提供了下载和多个演示demo,查看 阅读全文
摘要:
选择排序Selection Sort的PHP实现,安全按照算法所写。 同一排序算法下,需要趟数最多的数列是什么数列呢?思考中。 每一趟从待排序的数据元素中选出最小(或最大)的一个元素,顺序放在已排好序的数列的最后,直到全部待排序的数据元素排完。 选择排序是不稳定的排序方法。 阅读全文
摘要:
冒泡排序Bubble Sort的PHP实现。代码中函数说明: out_arr,用于将数组输出成一个字符串,以便查看 bubblesort,第一种实现方案,从后往前依次选出需要的值,这里是较大的 bubblesort2,第二种方案,从前往后一次选中需要的值,这里是最小的 range,产生一个1到20的 阅读全文
摘要:
排序是程序员一直在用的,决定做个分类,陆续将各种排序的PHP实现写出来。喜欢的朋友可以看看。首先还是来看看对排序相关知识的介绍。 在计算机科学技术和数学里,排序又称排序算法。一个排序算法(Sorting algorithm)是一种能将一串资料依照特定排序方式的一种算法。 到这里,简单的说下算法吧。算 阅读全文
摘要:
内存分配机制:首先要说明的是Memcached支持最大的存储对象为1M。它的内存分配比较特殊,但是这样的分配方式其实也是对于性能考虑的,简单的分配机制可以更容易回收再分配,节省对于CPU的使用。这里用一个酒窖比喻来说明这种内存分配机制,首先在Memcached起来的时候可以通过参数设置使用的总共的M 阅读全文
摘要:
1、memcache基本简介 memcached是高性能的分布式内存缓存服务器。一般的使用目的是,通过缓存数据库查询结果,减少数据库访问次数,以提高动态Web应用的速度、提高可扩展性。 Memcache的运行图: Memcache的特征 memcached作为高速运行的分布式缓存服务器,具有以下的特 阅读全文
摘要:
1.ob缓存运行方式 2.注意:在程序中如果开启ob_start(),所有的echo输出都会保存到ob缓存中,可以使用ob系列函数进行操作,如果没有,默认情况下,在程序执行结束,会把缓存中的数据发送给浏览器,如果,你使用ob_clean()类似的函数,会情况缓存中的内容,那么就不用有数据发送给浏览器 阅读全文
摘要:
Token.php ', 'e', '2', 'f', 'P', 'g', ')', '?', 'H', 'i', 'X', 'U', 'J... 阅读全文
摘要:
负载均衡 先来简单了解一下什么是负载均衡,单从字面上的意思来理解就可以解释N台服务器平均分担负载,不会因为某台服务器负载高宕机而某台服务器闲置的情况。那么负载均衡的前提就是要有多台服务器才能实现,也就是两台以上即可。 测试环境由于没有服务器,所以本次测试直接host指定域名,然后在VMware里安装 阅读全文
摘要:
MyISAM是MySQL的默认数据库引擎(5.5版之前),由早期的ISAM(Indexed Sequential Access Method:有索引的顺序访问方法)所改良。虽然性能极佳,但却有一个缺点:不支持事务处理(transaction)。不过,在这几年的发展下,mysql也导入了InnoDB( 阅读全文
摘要:
特点: Memcached是由Danga Interactive开发的,高性能的,分布式的内存对象缓存系统,用于在动态应用中减少数据库负载,提升访问速度Memcached的缓存是一种分布式的,可以让不同主机上的多个用户同时访问, 因此解决了共享内存只能单机应用的局限,更不会出现使用数据库做类似事情的 阅读全文
摘要:
ThinkPHP的优缺点如下: 1、高级模型:可以轻松支持序列化字段、文本字段、只读字段、延迟写入、乐观锁、数据分表等高级特性。 2、视图模型:轻松动态地创建数据库视图,多表查询相对简单。 3、关联模型:让你以出乎意料的简单、灵活的方式完成多表的关联操作。 4、模板引擎:系统内建了一款卓越的基于XM 阅读全文
摘要:
1、nginx相对于apache的优点: 轻量级,同样起web 服务,比apache 占用更少的内存及资源 抗并发,nginx 处理请求是异步非阻塞的,而apache 则是阻塞型的,在高并发下nginx 能保持低资源低消耗高性能 高度模块化的设计,编写模块相对简单 社区活跃,各种高性能模块出品迅速啊 阅读全文