小魔女 发表于 2015-1-16 22:16:11

MYSQL网页编程之利用MyISAM表和InnoDB的一些纪录

由于MySQL数据库已经如此普及,对企业来说它无疑是一个更好的选择。</p>key_buffer_size-这对MyISAM表来讲十分主要。假如只是利用MyISAM表,能够把它设置为可用内存的30-40%。公道的值取决于索引巨细、数据量和负载。
记着,MyISAM表会利用操纵体系的缓存来缓存数据,因而必要留出部份内存给它们,良多情形下数据比索引年夜多了。只管云云,必要老是反省是不是一切的key_buffer都被使用了。
.MYI文件只要1GB,而key_buffer却设置为4GB的情形长短常少的。这么做太华侈了。假如你很少利用MyISAM表,那末也保存低于16-32MB的key_buffer_size以顺应赐与磁盘的一时表索引所需。
innodb_buffer_pool_size-这对Innodb表来讲十分主要。Innodb比拟MyISAM表对缓冲更加敏感。MyISAM能够在默许的key_buffer_size设置下运转的能够,但是Innodb在默许的innodb_buffer_pool_size设置下却跟蜗牛似的。因为Innodb把数据和索引都缓存起来,无需留给操纵体系太多的内存,因而假如只必要用Innodb的话则能够设置它高达70-80%的可用内存。假如你的数据量不年夜,而且不会暴增,那末无需把innodb_buffer_pool_size设置的太年夜了。

innodb_additional_pool_size-这个选项对功能影响其实不太多,最少在有差未几充足内存可分派的操纵体系上是如许。不外假如你仍旧想设置为20MB(大概更年夜),因而就必要看一下Innodb其他必要分派的内存有几。
innodb_log_file_size在高写进负载特别是年夜数据集的情形下很主要。这个值越年夜则功能绝对越高,可是要注重到大概会增添恢复工夫。我常常设置为64-512MB,跟据服务器巨细而异。innodb_log_buffer_size默许的设置在中等强度写进负载和较短事件的情形下,服务器功能还能够。假如存在更新操纵峰值大概负载较年夜,就应当思索加年夜它的值了。假如它的值设置太高了,大概会华侈内存。它每秒城市革新一次,因而无需设置凌驾1秒所需的内存空间。一般8-16MB就充足了。越小的体系它的值越小。
innodb_flush_logs_at_trx_commit是不是为Innodb比MyISAM慢1000倍而头年夜?看来大概你忘了修正这个参数了。默许值是1,这意味着每次提交的更新事件(大概每一个事件以外的语句)城市革新到磁盘中,而这相称泯灭资本,特别是没有电池备用缓存时。良多使用程序,特别是从MyISAM变化过去的那些,把它的值设置为2就能够了,也就是不把日记革新到磁盘上,而只革新到操纵体系的缓存上。日记仍旧会每秒革新到磁盘中往,因而一般不会丧失每秒1-2次更新的损耗。假如设置为0就快良多了,不外也绝对不平安了。MySQL服务器溃散时就会丧失一些事件。设置为2批示丧失革新到操纵体系缓存的那部分事件。
table_cache-翻开一个表的开支大概很年夜。比方MyISAM把MYI文件头标记该表正在利用中。你一定不但愿这类操纵太频仍,以是一般要加年夜缓存数目,使得足以最年夜限制地缓存翻开的表。它必要用到操纵体系的资本和内存,对以后的硬件设置来讲固然不是甚么成绩了。假如你有200多个表的话,那末设置为1024大概对照符合(每一个线程都必要翻开表),假如毗连数对照年夜那末就加年夜它的值。我已经见过设置为100,000的情形。
thread_cache-线程的创立和烧毁的开支大概很年夜,由于每一个线程的毗连/断开都必要。我一般最少设置为16。假如使用程序中有大批的腾跃并发毗连而且Threads_Created的值也对照年夜,那末我就会加年夜它的值。它的目标是在一般的操纵中无需创立新线程。
query_cache-假如你的使用程序有大批读,并且没有使用程序级其余缓存,那末这很有效。不要把它设置太年夜了,由于想要保护它也必要很多开支,这会招致MySQL变慢。一般设置为32-512Mb。设置完以后最好是跟踪一段工夫,检察是不是运转优秀。在必定的负载压力下,假如缓存射中率太低了,就启用它。
使用DBaaS能让收入损失从其他业务上得到弥补,如软件更新和硬件管理。也许决定走DBaaS之路的客户可能会跳过解决方案提供商,尽管这个决策看起来有点短视。

不帅 发表于 2015-1-19 06:28:11

一个是把SQL语句写到客户端,可以使用DataSet进行加工;

灵魂腐蚀 发表于 2015-1-28 05:15:25

换言之,只有在不断的失败中尝试成功,而关于失败的总结却是很少的

分手快乐 发表于 2015-2-5 16:54:36

其实可以做一下类比,Oracle等数据库产品老早就支持了java编程,而且提供了java池参数作为用户配置接口。但是现在有哪些系统大批使用了java存储过程?!连Oracle自己的应用都不用为什么?!

第二个灵魂 发表于 2015-2-13 01:39:45

我们学到了什么?思考问题的时候从表的角度来思考问

活着的死人 发表于 2015-3-3 12:31:53

可能有的朋友会抱怨集成的orderby,其实如果使用ranking函数,Orderby是少不了的。如果担心Orderby会影响效率,可以为orderby的字段建立聚集索引,查询计划会忽略orderby操作(因为本来就是排序的嘛)。

飘灵儿 发表于 2015-3-11 11:10:02

财务软件要用SQL也只是后台的数据库而已,软件都是成品的,当然多学东西肯定是有好处的..

冷月葬花魂 发表于 2015-3-18 14:04:52

如安全管理、备份恢复、性能监控和调优等,SQL只要熟悉基本操作就可以,只要程序设计部分只要稍加了解即可(如存储过程、触发器等)。

admin 发表于 2015-3-26 03:01:48

索引视图2k就有。但是2005对其效率作了一些改进但是schema.viewname的作用域真是太限制了它的应用面。还有一大堆的环境参数和种种限制都让人对它有点却步。
页: [1]
查看完整版本: MYSQL网页编程之利用MyISAM表和InnoDB的一些纪录