公布MySQL中埋没空间成绩浅析
关于这个理由我把它放在最后一位。在很多业界专家中有一个相当一致的观点:MySQL不能很好的扩展。关于这点可能有很大的分歧,争论的焦点主要集中于水平可扩展性和垂直可扩展性上。MySQL则更倾向于垂直可扩展性。MySQL的埋没空间经由过程情况变量TMPDIR的设置完成。假如未设置TMPDIR,MySQL将利用体系的默许值,一般为/tmp、/var/tmp或/usr/tmp。 MySQL利用情况变量TMPDIR的值作为保留一时文件的目次的路径名。假如未设置TMPDIR,MySQL将利用体系的默许值,一般为/tmp、/var/tmp或/usr/tmp。假如包括一时文件目次的文件体系太小,可对mysqld利用“―tmpdir”选项,在具有充足空间的文件体系内指定1个目次。在MySQL5.1中,“―tmpdir”选项可被设置为数个路径的列表,以轮回体例利用。在Unix平台上,路径用冒号字符“:”离隔,在Windows、NetWare和OS/2平台上,路径用分号字符“;”离隔。注重,为了无效散布负载,这些路径应位于分歧的物理磁盘上,而不是位于不异磁盘的分歧分区中。
假如MySQL服务器正作为复制从服务器利用,不该将“--tmpdir”设置为指向基于内存的文件体系的目次,或当服务器主机重启时将清空的目次。关于复制从服务器,必要在呆板重启时仍保存一些一时文件,以便可以复制一时表或实行LOADDATAINFILE操纵。假如在服务重视启时丧失了一时文件目次下的文件,复制将失利。
MySQL会以隐含体例创立一切的一时文件。如许,就可以确保中断mysqld时会删除一切一时文件。利用隐含文件的弱点在于,在一时文件目次地点的地位中,看不到占用了文件体系的年夜一时文件。
举行排序时(ORDERBY或GROUPBY),MySQL一般会利用1个或多个一时文件。所需的最年夜磁盘空间由下述表达式决意:
(lengthofwhatissorted+sizeof(rowpointer))
*numberofmatchedrows
*2
“rowpointer”(行指针)的巨细一般是4字节,但在今后,关于年夜的表,该值大概会增添。
关于某些SELECT查询,MySQL还会创立一时SQL表。它们不是隐含表,并具有SQL_*情势的称号。
ALTERTABLE会在与原始表目次不异的目次下创立一时表。
DBaaS解决方案可以降低首次投入成本,对于那些小企业来说,他们往往认为内部部署的数据库成本太高,DBaaS的成本和灵活性优势对小企业吸引力更大,他们是云数据库解决方案的重点客户群体。 需要注意的一点,也是我使用过程中发现的一个问题。在建立function->schema->table后,如果在现有的分区表上建立没有显式声明的聚集索引时,分区表会自动变为非分区表。这一点很让我纳闷。 光写几个SQL实在叫无知。 如果是将来做数据库的开发设计,就应该详细学习T-SQL的各种细节,包括T-SQL的程序设计、存储过程、触发器以及具体使用某个开发语言来访问数据库。 如安全管理、备份恢复、性能监控和调优等,SQL只要熟悉基本操作就可以,只要程序设计部分只要稍加了解即可(如存储过程、触发器等)。 Mirror可以算是SQLServer的Dataguard了。但是能不能被大伙用起来就不知道了。 你可以简单地认为适合的就是好,不适合就是不好。
页:
[1]