- 博客(80)
- 资源 (3)
- 收藏
- 关注
转载 Mysql数据库表分区存储到指定磁盘路径
. 前提:mysql5.6.6以上的版本以上的版本才支持单表指定目录,且目录权限是MySQL:mysql。 在mysql中数据文件存放于在my.cnf中datadir指定的路径,使用的表引擎不同产生的文件格式、表文件个数也会有所差异。 mysql的表引擎有多种,表的扩展名也不一样,如innodb用“ .ibd”,archive用“.arc ”,csv用“.csv”等。
2017-07-31 23:50:29 3756
原创 mysql数据库优化--(4)设计 存储引擎的选择
1 设计 - 存储引擎的选择逐渐演变成: “选择MySQL 还是 MariaDB?” 1.1 结论新版本的MySQL的话, 选择Innodb没错的.依据基本功能选择.MyISAM: 擅长处理快速的查询和插入. 典型的web程序的形态.Innodb: 擅长大量并发, 处理大量的更新操作. 支持事务, 外键约束. 1.2 MyISAM1.2
2017-07-31 21:16:04 312
转载 从InnoDB了解MVCC
MVCC全称是Multi-Version Concurrency Control,即多版本并发控制。这是种很常用的技术,现在几乎所有的关系数据库都支持它。平时它默默工作,像个透明人,似乎不用关心它的细节。但是当我们偶尔在数据库里面遇到一些奇怪问题时,却不得不需要关注它。因为很可能这些“奇怪”的问题,不过是MVCC里的正常行为;而且,MVCC的设计思路还能在我们日常的开发中起到一些借鉴作用。
2017-07-31 11:47:46 504
转载 mysql事务和 MySQL 加锁处理分析(原文博客讨论太激烈了,看评论可以看一天,这篇文章也没看完)
原文地址:http://hedengcheng.com/?p=771#_Toc374698322背景 MySQL/InnoDB的加锁分析,一直是一个比较困难的话题。我在工作过程中,经常会有同事咨询这方面的问题。同时,微博上也经常会收到MySQL锁相关的私信,让我帮助解决一些死锁的问题。本文,准备就MySQL/InnoDB的加锁问题,展开较为深入的分析与讨
2017-07-30 23:52:55 628
转载 Mysql中的MVCC
MySQL到底是怎么实现MVCC的?这个问题无数人都在问,但google中并无答案,本文尝试从mysql源码中寻找答案。 在Mysql中MVCC是在Innodb存储引擎中得到支持的,Innodb为每行记录都实现了三个隐藏字段:6字节的事务ID(DB_TRX_ID )7字节的回滚指针(DB_ROLL_PTR)隐藏的ID6字节的事物ID用来标识该行所述的事务,7字节的回滚
2017-07-30 23:42:00 315
转载 网络数据传输socket和http优缺点
1 数据传输方式1.1 Socket传输的定义和其特点 所谓socket通常也称作"套接字",实现服务器和客户端之间的物理连接,并进行数据传输,主要有UDP和TCP两个协议。Socket处于网络协议的传输层。 UDP协议:广播式数据传输,不进行数据验证 TCP协议:传输控制协议,一种面向连接的协议,给用户进程提供可靠的全双工的字节流,
2017-07-30 16:41:21 3347
转载 PHP SOCKET编程(必看)
1. 预备知识 一直以来很少看到有多少人使用PHP的socket模块来做一些事情,大概大家都把它定位在脚本语言的范畴内吧,但是其实php的socket模块可以做很多事情,包括做ftplist,http post提交,smtp提交,组包并进行特殊报文的交互(如smpp协议),whois查询。这些都是比较常见的查询。特别是php的socket扩展库可以做的事情简直不
2017-07-30 16:20:21 936
转载 深入浅出php socket编程
对TCP/IP、UDP、Socket编程这些词你不会很陌生吧?随着网络技术的发展,这些词充斥着我们的耳朵。那么我想问:1.什么是TCP/IP、UDP?2.Socket在哪里呢?3.Socket是什么呢?4.你会使用它们吗?什么是TCP/IP、UDP?TCP/IP(Transmission Control Protocol/Internet Protocol)即传
2017-07-30 15:39:02 426
转载 php编写TCP服务端和客户端程序
1、修改PHP.ini,打开extension=php_sockets.dll2、服务端程序SocketServer.php[php] view plain copy//确保在连接客户端时不会超时 set_time_limit(0); //设置IP和端口号 $address = "127.0.0.1"
2017-07-30 15:20:35 1752
转载 php支持的协议和封装协议和三种CLI常量:STDIN,STDOUT,STDERR
支持的协议和封装协议 ¶PHP 带有很多内置 URL 风格的封装协议,可用于类似 fopen()、 copy()、 file_exists() 和 filesize() 的文件系统函数。 除了这些封装协议,还能通过 stream_wrapper_register() 来注册自定义的封装协议。Note: 用于描述一个封装协议的 URL 语法仅支持 scheme://... 的语法
2017-07-30 15:13:36 848
转载 php语言实现tcpip协议
PHP主要是实现http协议的,最近我和我同学在做一个网络的项目需要用到底层的tcp协议和http协议两种协议,php自然是实现http协议的良好语言,但是它也可以不怎么完美的实现tcp协议,所以最终使用php作为我们的工具。首先我找到了两个描写使用php语言来实现tcp协议的代码:代码地址:http://www.hdj.me/php-listen-as-socket-se
2017-07-30 14:01:35 3077 1
转载 IO知识和优化
1、系统学习IO性能对于一个系统的影响是至关重要的。一个系统经过多项优化以后,瓶颈往往落在数据库;而数据库经过多种优化以后,瓶颈最终会落到IO。而IO性能的发展,明显落后于CPU的发展。Memchached也好,NoSql也好,这些流行技术的背后都在直接或者间接地回避IO瓶颈,从而提高系统性能。 IO系统的分层: 三层结构上图层次比较多,
2017-07-29 22:07:14 530
转载 MySQL函数大全及用法示例
MySQL函数大全及用法示例1、字符串函数ascii(str) 返回字符串str的第一个字符的ascii值(str是空串时返回0) mysql> select ascii('2'); -> 50 mysql> select ascii(2); -> 50 mysql> select ascii('dete'); -> 100
2017-07-29 21:50:51 326
转载 Redis学习手册--持久化机制
一、Redis提供了哪些持久化机制: 1). RDB持久化: 该机制是指在指定的时间间隔内将内存中的数据集快照写入磁盘。 2). AOF持久化: 该机制将以日志的形式记录服务器所处理的每一个写操作,在Redis服务器启动之初会读取该文件来重新构建数据库,以保证启动后数据库中的数据是完整的。 3). 无持久化: 我们可以通过配置
2017-07-29 21:08:44 285
转载 Redis主从和HA配置
原文地址:http://blog.csdn.net/dc_726/article/details/116944371同步原理摘自:http://www.cnblogs.com/stephen-liu74/archive/2012/03/30/2364717.html “下面的列表清楚的解释了Redis Replication的特点和优势。 1). 同一个
2017-07-29 20:23:00 383
转载 设计模式之六大原则
设计模式(Design Pattern)是一套被反复使用、多数人知晓的、经过分类的、代码设计经验的总结。使用设计模式的目的:为了代码可重用性、让代码更容易被他人理解、保证代码可靠性。 设计模式使代码编写真正工程化;设计模式是软件工程的基石脉络,如同大厦的结构一样。设计模式的六大原则是,开发人员必须要掌握的,在开发过程中遵循这些原则,将极大地提升我们的代码质量和开发效率。下面我们简单
2017-07-28 17:23:29 345
转载 mysql的慢查询
MySQL有一个功能就是可以log下来运行的比较慢的sql语句,默认是没有这个log的,为了开启这个功能,要修改my.cnf或者在MySQL启动的时候加入一些参数。如果在my.cnf里面修改,需增加如下几行long_query_time = 1log-slow-queries =log-queries-not-using-indexeslong_query_time
2017-07-28 17:14:08 389
转载 PHP Cache缓存机制与文件缓存原理
PHP Cache缓存机制与文件缓存原理,使用 PEAR 中的 cache 可以将内容缓存于文件,数据库或者内存中,以文件为例。没有使用缓存pear_content_cache1.php <?php echo "这是内容。<P>"; echo "当前时间是" . date('M-d-Y H:i:s A', time()) . "<B
2017-07-28 17:07:46 7471
转载 算法的时间复杂度和空间复杂度-总结
通常,对于一个给定的算法,我们要做 两项分析。第一是从数学上证明算法的正确性,这一步主要用到形式化证明的方法及相关推理模式,如循环不变式、数学归纳法等。而在证明算法是正确的基础上,第二部就是分析算法的时间复杂度。算法的时间复杂度反映了程序执行时间随输入规模增长而增长的量级,在很大程度上能很好反映出算法的优劣与否。因此,作为程序员,掌握基本的算法时间复杂度分析方法是很有必要的。 算法
2017-07-27 20:45:54 411
原创 什么是尾递归,尾递归的优势以及语言支持情况说明
今天在进行数据排序时候用到递归,但是耗费内存太大,于是想找一找有没有既提升效率又节省内存的算法,然后发现尾递归确实不错,只可惜php并没有对此作优化支持.虽然如此,但还是学习了,下面总结一下:尾递归 --概念如果一个函数中所有递归形式的调用都出现在函数的末尾,我们称这个递归函数是尾递归的。当递归调用是整个函数体中最后执行的语句且它的返回值不属于表达式的一部分时,这个递归调用就是
2017-07-27 20:38:47 5197
转载 PHP中is_callable()函数的用法详解
关于PHP中的is_callable()函数,手册中是这样说的“检测参数是否为合法的可调用结构”,但是没有很好的演示代码,所以今天我在我的WEB开发笔记上发一下演示代码,希望能给大家对is_callable()的理解上有一些帮助。演示代码如下:<?phpclass test { static function a() { return "test"; }}class abc
2017-07-27 19:35:55 2740 1
转载 PHP里的尾递归及其优化?
不同的语言对尾递归的支持都有所不同,编译器的优化也不尽相同。我们之前看了C语言的尾递归,那么在PHP里又是如何的呢?PHP对尾递归没有优化效果先来看下实验。<?phpfunction factorial($n){ if($n == 0) { return 1; } return factorial($n-1) * $n;
2017-07-27 19:32:33 2387 3
转载 PDO中包含三个预定义的类--PDO、PDOStatement和PDOException
一、PDO代表一个PHP和数据库之间的连接。方法:PDO - 构造器,构建一个新的PDO对象beginTransaction - 开始事务commit - 提交事务errorCode - 从数据库返回一个错误代号,如果有的话errorInfo - 从数据库返回一个含有错误信息的数组,如果有的话exec - 执行一条SQL语句并返回影响的行数getAttribut
2017-07-27 13:39:11 661
转载 PHP 开发者该知道的 5 个 Composer 小技巧
Composer是新一代的PHP依赖管理工具。其介绍和基本用法可以看这篇《Composer PHP依赖管理的新时代》。本文介绍使用Composer的五个小技巧,希望能给你的PHP开发带来方便。1. 仅更新单个库只想更新某个特定的库,不想更新它的所有依赖,很简单:composer update foo/bar此外,这个技巧还可以用来解决“警告信息问题”。你一定见过这
2017-07-27 13:12:23 294
转载 Composer 安装与使用
Composer使用是什么如果你知道yum、apt-get、npm、bower等命令中的一种或者多种,那么,你也能很快知道composer是什么了。没错,它就是PHP里快速安装类库的。平时,我们安装一个PHP类库,需要搜索->下载;使用composer,我们只要知道包名,直接composer insatll就可以了。PHP 语言本身就带有强大的网络功能、文件管理
2017-07-27 13:10:06 4003
原创 yum、rpm以及composer的区别
首先应区别的是包管理器和依赖管理工具: yum和rpm都是包管理器,可以为系统安装升级软件; Composer 是 PHP5.3以上 的一个依赖管理工具。它允许你申明项目所依赖的代码库,它会在你的项目中为你安装他们。Composer 不是一个包管理器。是的,它涉及 "packages" 和 "libraries",但它在每个项目的基础上进行管理,在你项目的某个目录中(例如 vend
2017-07-27 13:06:27 1061
转载 通过查看mysql 配置参数、状态来优化你的mysql
mysql的监控方法大致分为两类:1.连接到mysql数据库内部,使用show status,show variables,flush status 来查看mysql的各种性能指标。2. 直接使用mysqladmin查看其性能指标,例如:UserParameter=mysql.uptime,mysqladmin -uroot status|cut -f2 -d":"|cut
2017-07-26 04:31:38 2159
转载 Mysql配置参数innodb_buffer_pool_size的学习与整理(配合之前文章配置数据库)
摘要: 这半个月来,一直在做一些关于服务器交易端性能的提升工作,主要是分析和讨论交易端性能的瓶颈,找出导致性能减慢的原因,拟定出合理的解决方案,主要是通过几个方面进行研究和学习,今天总算有了一点点突破,主要是涉及mysql核心参数innodb_buffer_pool_size的学习和讨论,这里简单的整理和总结一下。 原文地址:Mysql配置参数innodb_buffer_pool
2017-07-26 04:29:53 1438
转载 php截取字符串(中文字符截取mb_substr)
1.substr(源字符串,其实位置[,长度])-截取字符串返回部分字符串 php$str ="phpddt.com";echo substr($str,2);//pddt.comecho substr($str,2,3);//pddecho substr($str,-2);//om 负数从结尾开始取?> 但是当你截取中文字符串的时候很容易出现乱码,因为一个汉字
2017-07-26 02:27:57 1002
转载 php之PDO (PHP DATA OBJECT)
从 PHP 5.1 开始附带了 PDO,PHP 数据对象 (PDO) 扩展为PHP访问数据库定义了一个轻量级的一致接口。PDO 提供了一个 数据访问 抽象层,这意味着,不管使用哪种数据库(比如mysql,oracle,mssql…),都可以用相同的函数(方法)来查询和获取数据。1.创建PDO对象使用PDO扩展必须在php.ini文件中打开相应的扩展,下图打开了pdo_mysql的扩
2017-07-26 00:17:18 835
转载 深入理解PHP对象赋值(没意思or有意思)
1 2 //深入理解PHP对象赋值 3 echo ''; 4 5 $obj = new StdClass; 6 $obj->name = 'Pig'; 7 var_dump($obj); //object(stdClass)#1 (1) { ["name"]=> string(3) "Pig" } 8
2017-07-26 00:15:26 379
原创 自己做工具--封装PHP的PDO类--单例模式
下面的代码是用此前一个名为MyPDO的类改写的,引入了单例模式来保证在全局调用中不会重复实例化这个类,增加了预处理和事务处理模块, 降低系统资源的浪费。代码如下:PHP<?php/*** DAOPDO* @author houzhyan * @license http://www.descartes
2017-07-26 00:08:19 7590 3
转载 MySQL批量千万级数据SQL插入性能优化<细读>
对于一些数据量较大的系统,数据库面临的问题除了查询效率低下,还有就是数据入库时间长。特别像报表系统,可能每天花费在数据导入上的时间就会长达几个小时之久。因此,优化数据库插入性能是很有意义的。 网络上的牛人很多,总会有一些手段可以提高insert效率,大家跟我一起分享一下吧: 1. 一条SQL语句插入多条数据。 我们常用的插入语句大都是一条一个
2017-07-25 00:43:18 15221 2
转载 mysql explain用法(调试优化用)
mysql explain用法explain显示了mysql如何使用索引来处理select语句以及连接表。可以帮助选择更好的索引和写出更优化的查询语句。使用方法,在select语句前加上explain就可以了,如:explain select * from statuses_status where id=11;explain列的解释table:显示这一行的数据
2017-07-24 19:04:28 691
转载 array_map函数在PHP类中调用内部方法简介
在PHP编程中,我们经常会遇到处理数组的单元数据问题,比如对数组中每个单元应用自定义函数。一种方法是通过循环遍历整个数组,对每个单元调用自定义函数,然后用返回值替换原数组相应单元的值。这也是最常见和简单的方法,在此就不举例了。一种方法是通过PHP提供的array_map函数回调自定义函数,这也是被推荐的方法。array_map -- 将回调函数作用到给定数组的单元上
2017-07-24 18:59:41 5807 2
转载 mysql,mysqli和PDO的区别
一、PHP手册关于MySQL的说明: This extension is not recommended for writing new code. Instead, either themysqli orPDO_MySQL extension should be used. See also theMySQL API Overview for further help whi
2017-07-24 12:06:43 614
转载 php mysql PDO 查询操作
[php] view plain copy$dbh = new PDO('mysql:host=localhost;dbname=access_control', 'root', ''); $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $dbh->exec('se
2017-07-24 12:00:38 2017
转载 浅析MySQL中exists与in的使用
exists对外表用loop逐条查询,每次查询都会查看exists的条件语句,当 exists里的条件语句能够返回记录行时(无论记录行是的多少,只要能返回),条件就为真,返回当前loop到的这条记录,反之如果exists里的条 件语句不能返回记录行,则当前loop到的这条记录被丢弃,exists的条件就像一个bool条件,当能返回结果集则为true,不能返回结果集则为 false如下:
2017-07-24 11:55:50 213
转载 PDO获取数据的方法fetch()、fetchAll()、setFetchMode()、bindColumn()
PDO的数据获取方法与其他数据库扩展都非常类似,只要成功执行SELECT查询,都会有结果集对象产生。不管是使用PDO对象中的query()方法,还是使用prepare()和execute()等方法结合的预处理语句,执行SELECT查询都会得到相同的结果集对象PDOStatement。都需要通过PDOStatement类对象中的方法将数据遍历出来。下面介绍PDOStatement类中常见的几个获取结
2017-07-24 11:46:04 1076
转载 MYSQL千万级数据量的优化方法积累(max_allowed_packet最大内存占用设置)
1、分库分表很明显,一个主表(也就是很重要的表,例如用户表)无限制的增长势必严重影响性能,分库与分表是一个很不错的解决途径,也就是性能优化途径,现在的案例是我们有一个1000多万条记录的用户表members,查询起来非常之慢,同事的做法是将其散列到100个表中,分别从members0到members99,然后根据mid分发记录到这些表中,牛逼的代码大概是这样子:for($i
2017-07-24 08:58:15 5459
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人