主机参考:VPS测评参考推荐/专注分享VPS服务器优惠信息!若您是商家可以在本站进行投稿,查看详情!此外我们还提供软文收录、PayPal代付、广告赞助等服务,查看详情! |
我们发布的部分优惠活动文章可能存在时效性,购买时建议在本站搜索商家名称可查看相关文章充分了解该商家!若非中文页面可使用Edge浏览器同步翻译!PayPal代付/收录合作 |
PHPCMS用哪个数据库比较好?
PHPCMS最好用MySQL数据库,因为PHPCMS是用PHP写的,PHP对MySQL的支持更好,所以推荐MySQL,这是一个开源的关系数据库管理系统。
优化MySQL
选择InnoDB作为存储引擎。
大型产品的数据库要求高可靠性和高并发性。作为默认的MySQL存储引擎,InnoDB是比MyISAM更好的选择。
优化数据库结构
组织数据库的模式、表和字段,以减少I/O开销,将相关项目放在一起,并提前计划,以便随着数据量的增加,性能可以保持在较高的水平。
数据表的设计要尽量减少其占用空间,表的主键要尽量短。对于InnoDB表,主键所在的列可以在每个二级索引条目中复制,所以如果有很多二级索引,一个短的主键可以节省很多空间。
仅创建提高查询性能所需的索引。索引有助于检索,但是增加了插入和更新操作的执行时间。
InnoDB的ChangeBuffering特性
InnoDB提供了changebuffering的配置,可以减少维护二级索引所需的磁盘I/O。大型数据库可能会遇到大量的表操作和大量的I/O,以确保二级索引保持最新。当相关页面不在缓冲池中时,InnoDB的changebuffer会将缓存更改为二级索引条目,从而避免因无法立即从磁盘读取页面而导致的耗时I/O操作。当页面被加载到缓冲池中时,缓冲的更改将被合并,然后更新的页面将被刷新到磁盘。这样可以提高性能,适用于MySQL5.5及更高版本。
InnoDB页面压缩
InnoDB支持表的页面级压缩。当数据页被写入时,它将被特定的压缩算法压缩。压缩后的数据将被写入磁盘,其打孔机制将释放页末的空块。如果压缩失败,数据将按原样写入。并且表和索引将被压缩,因为索引通常占数据库总大小的很大一部分。压缩可以显著节省内存、I/O或处理时间,从而达到提高性能和可扩展性的目的。它还可以减少内存和磁盘之间传输的数据量。MySQL5.1及更高版本支持该功能。
请注意,页面压缩不支持共享表空间中的表。共享表空间包括系统表空间、临时表空间和常规表空间。
使用批数据导入
导入主键上带有排序数据源的批数据可以加快数据插入的过程。否则,可能需要在其他行之间插入行来维持排序,这将导致高磁盘I/O,从而影响性能并增加页面拆分。关闭自动提交模式也是有益的,因为它会为每次插入将执行日志刷新到磁盘。在大容量插入期间临时转移唯一键和外键检查也可以显著减少磁盘I/O..对于新创建的表,最佳实践是在批量导入后创建外键/唯一键约束。
一旦您的数据达到稳定的大小,或者不断增长的表增加了几十或几百兆字节,您应该考虑使用OPTIMIZETABLE语句来重组表并压缩浪费的空间。对重组后的表进行全表扫描将需要较少的I/O..
优化InnoDB磁盘的I/O
增加InnoDB缓冲池的大小,可以让查询从缓冲池而不是磁盘I/O访问,通过调整系统变量innodb_flush_method,可以将清空缓冲区的索引调整到最佳水平。
MySQL的内存分配
在为MySQL分配足够的内存之前,请考虑MySQL在不同领域的内存需求。要考虑的关键领域是:并发连接——对于大量的并发连接,排序和临时表将需要大量的内存。在撰写本文时,16GB到32GB的RAM对于处理3000多个并发连接的数据库来说已经足够了。
内存碎片会消耗大约10%或更多的内存。像innodb_buffer_pool_size、key_buffer_size和query_cache_size这样的缓存和缓冲区会消耗大约80%的已分配内存。
日常保养
定期检查慢速查询日志并优化查询机制,以有效地使用缓存来减少磁盘I/O。优化它们以扫描最少数量的行,而不是全表扫描。
其他可以帮助DBA检查和分析性能的日志还有:错误日志、通用查询日志、二进制日志、DDL日志(元数据日志)。
定期刷新缓存和缓冲区以减少碎片。使用OPTIMIZETABLE语句重新组织表并压缩任何可能浪费的空间。
推荐教程:《PHP》和《PHPCMS教程》以上是PHPCMS用哪个数据库比较好?更多详情请关注主机参考其他相关文章!
这几篇文章你可能也喜欢:
本文由主机参考刊发,转载请注明:PHPCMS用哪个数据库比较好?(phpcms数据库文件) https://zhujicankao.com/88582.html
评论前必须登录!
注册