蒙在股里 发表于 2015-2-3 23:52:55

PHP编程:利用 PHP + MySQL 处置负载太重的数据库...

会PHP吗?会,我会把一加一的运算写在函数里,然后调用啦!   以下是我对利用 PHP + MySQL 处置负载太重的数据库成绩思虑和总结,经历方面必定有着很多完善的中央,接待高手前来指教:
在设计时思索公道的表布局和响应也许要接受几何会见压力,需不需求分表,假如需求分表每一个表放几何笔记录适合;
关于分表的完成可以采取 PHP 处置或是 MySQL 自带的 MERGE 表类型(即 MRG_MyISAM)来处置:
⑴假如是利用 PHP 处置有两种情形:
①没无数据的新库新表要为抗压做筹办,好比一个聊天室一入手下手就要思索能够有多个子聊天室,可以依据一些前提来停止,例如依照主键或是 ID 的局限得出一种算法在存储时就依照响应算法分派存储到同布局但分歧名的表中;
②假如是对已有大批数据需求减压的数据库可以依照必定划定规矩,好比依照该表的会见频率几何,把经常使用的数据放到一个表中,很少会见的数据放到另外一张表中,会见数据时先会见经常使用表,找不到时再会见十分用表。
⑵假如采取 MySQL 自带的分表体例处置,就是利用 MySQL 的 MERGE 表类型(即 MRG_MyISAM)。这类时分通常为针对已有教多半据,单个数据表没法接受负载时才会利用这类体例,可以针对这个教大的表利用一些东西好比 phpMyadmin 来对相干表的类型停止修正,同时肯定分表中每一个内外的纪录数,不外这个操作需求稳重,除初次分表外,今后的数据将加到最初一个子表中,想要再分时就需求手动处置,编纂相干的“标明 .MRG”文件了,同时还要处置新的子表的“ALTER TABLE tablename AUTO_INCREMENT = xxx”。
采取 MERGE 表时需求注重手册中提到的一些成绩: ①假如你利用 ALTER TABLE 来把 MERGE 表变成其它表类型,究竟层表的映照就被丧失了。取而代之的,来自底层 MyISAM 表的行被复制到已改换的表中,该表随后被指定新类型。
②REPLACE 不起感化。
③没有 WHERE 子句,或在任何被映照到一个翻开的 MERGE 表上的任何一个表上的 REPAIR TABLE,TRUNCATE TABLE,OPTIMIZE TABLE 或 ANALYZE TABLE,你不克不及利用 DROP TABLE,ALTER TABLE,DELETE FROM。假如你这么做了,MERGE 表将仍然指向原始表,如许发生不测了局。处理这个缺乏最复杂的举措是在履行任何一个这些操作之前收回一个 FLUSH TABLES 语句来确保没有 MERGE 表仍然坚持翻开。
④一个 MERGE 表不克不及在全部表上保持 UNIQUE 束缚。当你履行一个 INSERT,数据进入第一个或最初一个 MyISAM 表(取决于 INSERT_METHOD 选项的值)。MySQL 确保独一键值在谁人 MyISAM 内外坚持独一,但不是跨纠合里一切的表。
⑤当你创立一个 MERGE 表之时,没有反省去确保底层表的存在和有不异的机构。当 MERGE 表被利用之时,MySQL 反省每一个被映照的表的纪录长度是不是相等,但这其实不非常牢靠。假如你从不类似的 MyISAM 表创立一个 MERGE 表,你十分有能够撞见奇异的成绩。
⑥在 MERGE 表中的索引的按次和它的底层表中的索引应当一样。假如你利用 ALTER TABLE 给一个被用在 MERGE 表中的表添加一个 UNIQUE 索引,然后利用 ALTER TABLE 在 MERGE 表上添加一个非独一索引,假如在底层表上已有一个非独一索引,对表的索引排序是分歧的。(这是由于 ALTER TABLE 把 UNIQUE 索引放在非独一索引之前以利于反复键的疾速检测 )。因而对利用如许索引的表的查询能够前往不希冀的了局。
⑦在 Windows中,在一个被 MERGE 表利用的表上 DROP TABLE 不起感化,由于 MERGE 引擎的表映照对 MySQL 的更下层埋没。由于 Windows 不答应已翻开文件的删除,你起首必需刷新一切 MERGE 表(利用 FLUSH TABLES)或在移除该表之前移除 MERGE 表。
即使你理解不了PHP,但是也必须先跟它混个脸熟,看,一遍遍的看,看的同时一边琢磨,一边按照它所教的打代码,即使你搞不清楚那些代码到底是干嘛的,但是起码你应该找找感觉。

再现理想 发表于 2015-2-4 06:48:45

本人接触php时间不长,算是phper中的小菜鸟一只吧。由于刚开始学的时候没有名师指,碰过不少疙瘩,呗很多小问题卡过很久,白白浪费不少宝贵的时间,在次分享一些子的学习的心得。

小女巫 发表于 2015-2-9 17:56:51

首先我是坚决反对新手上来就用框架的,因为对底层的东西一点都不了解,造成知识上的真空,会对以后的发展不利。我的观点上手了解下框架就好,代码还是手写。当然啦如果是位别的编程语言的高手的话,这个就另当别论啦。

莫相离 发表于 2015-3-8 15:23:54

先学习php和mysql,还有css(html语言很简单)我认为现在的效果比以前的方法好。

因胸联盟 发表于 2015-3-16 03:00:33

装在C盘下面可以利用windows的ghost功能可以还原回来(顺便当做是重转啦),当然啦我的编译目录要放在别的盘下,不然自己的劳动成果就悲剧啦。

若天明 发表于 2015-3-22 19:09:27

本人接触php时间不长,算是phper中的小菜鸟一只吧。由于刚开始学的时候没有名师指,碰过不少疙瘩,呗很多小问题卡过很久,白白浪费不少宝贵的时间,在次分享一些子的学习的心得。

灵魂腐蚀 发表于 2015-3-24 16:03:54

在学习的过程中不能怕麻烦,不能有懒惰的思想。学习php首先应该搭建一个lamp环境或者是wamp环境。这是学习php开发的根本。虽然网络上有很多集成的环境,安装很方便,使用起来也很稳定、

金色的骷髅 发表于 2015-3-31 16:53:07

开发工具也会慢慢的更专业,每个公司的可能不一样,但是zend studio是个大伙都会用的。

愤怒的大鸟 发表于 2015-4-9 05:17:32

对于懒惰的朋友,我推荐php的集成环境xampp或者是wamp。这两个软件安装方便,使用简单。但是我还是强烈建议自己动手搭建开发环境。

爱飞 发表于 2015-5-1 00:10:29

微软最近出的新字体“微软雅黑”,虽然是挺漂亮的,不过firefox支持的不是很好,所以能少用还是少用的好。

老尸 发表于 2015-5-3 00:39:56

要进行开发,搭建环境是首先需要做的事,windows下面我习惯把环境那个安装在C盘下面,因为我配的环境经常出现诡异事件,什么事都没做环境有的时候就不能用啦。

山那边是海 发表于 2015-5-6 08:50:49

要进行开发,搭建环境是首先需要做的事,windows下面我习惯把环境那个安装在C盘下面,因为我配的环境经常出现诡异事件,什么事都没做环境有的时候就不能用啦。

飘灵儿 发表于 2015-6-17 10:48:52

兴趣是最好的老师,百度是最好的词典。

冷月葬花魂 发表于 2015-6-23 21:00:37

首先我是坚决反对新手上来就用框架的,因为对底层的东西一点都不了解,造成知识上的真空,会对以后的发展不利。我的观点上手了解下框架就好,代码还是手写。当然啦如果是位别的编程语言的高手的话,这个就另当别论啦。

小妖女 发表于 2015-6-26 21:09:41

做为1门年轻的语言,php一直很努力。

admin 发表于 2015-7-6 01:20:02

为了以后维护的方便最好是代码上都加上注释,“予人方便,自己方便”。此外开发文档什么的最好都弄齐全。我觉得这是程序员必备的素质。虽然会消耗点很多的时间。但是确实是非常有必要的。

柔情似水 发表于 2015-7-12 20:41:25

这些中手常用的知识,当你把我说的这些关键字都可以熟练运用的时候,你可以选择自己

第二个灵魂 发表于 2015-7-13 07:50:28

实践是检验自己会不会的真理。

分手快乐 发表于 2015-7-16 18:11:49

为了以后维护的方便最好是代码上都加上注释,“予人方便,自己方便”。此外开发文档什么的最好都弄齐全。我觉得这是程序员必备的素质。虽然会消耗点很多的时间。但是确实是非常有必要的。
页: [1]
查看完整版本: PHP编程:利用 PHP + MySQL 处置负载太重的数据库...