微信与项目经理沟通
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
1.优化索引、SQL语句,分析慢速查询;
2.设计表格时,严格按照数据库的设计范式设计数据库;
3.我们还可以缓存、静态化和分发我们的业务架构;
4.不用全文索引,用Xunsearch,ES或者云服务器上的索引;
5.如果效率还是不够好,可以采用主从模式分别读写数据;
6.可以添加memcached缓存,将经常访问但很少更改的数据放入memcached缓存服务器,这样可以节省磁盘I/O;
7.我们还可以优化硬件。在硬件层面,我们可以使用一些更好的硬盘(固态硬盘)和一些磁盘阵列技术(raid0、raid1、raid5)
-raid0:最简单(两块硬件加起来100G+100G=200G)
-raid1:镜像卷并将相同的数据复制为两份。可以立即从A/B读取,效率更高,硬盘坏了也不会丢失一片数据;
-raid5:3个硬盘,其中一个坏了,另外两个还能工作。
8.如果还是慢,先不要分表。可以利用MySQL自带的表分区技术,将数据划分到不同的文件中,这样可以让磁盘在读取时效率更高;
9.可以垂直分表,将不经常读取的数据放到另一个表中(节省磁盘I/O);
10.数据量如此之大,我们将很难对其进行优化。这时候我们可以用数据库中间件把数据分成数据库、表和机器。(原理:数据路由);
1.此外,还可以使用一些更快的存储方式,比如NoSQL存储一些我们需要经常访问的数据(数据库取出后,再从NoSQL取出一些其他数据);
12.另外还有一些表引擎选项,一些参数优化的相关提示都是优化MySQL的方法;
例如:MySQL索引的优化;
&nbs校园网站优化照片排版设计p;只要列包含空值,在本例中最好不要设置索引。如果复合索引具有空值,则在使用该索引时,该列不会使用该索引。
MySQL语句的优化方面:
[div]
查看慢速查询日志,找出执行时间长的sql语句优化。
连接多个表时,尽量让小表带动大表,即小表加入大表。
[div]
表格的字段尽量不为空。
字段长度固定的表查询会更快。
对表进行分区。
[div]
[div][div]
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流