[转]Magento刷新索引的几种方法
本文转自:https://blog.csdn.net/IT_Wallace/article/details/78513951
在数据表中经常会使用索引,下面简单介绍一下索引的利弊:
创建索引可以大大提高系统的性能:
- 通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。
- 可以大大加快数据的检索速度,这也是创建索引的最主要的原因。
- 可以加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义。
- 在使用分组和排序 子句进行数据检索时,同样可以显著减少查询中分组和排序的时间。
- 通过使用索引,可以在查询的过程中,使用优化隐藏器,提高系统的性能。
增加索引也有许多不利的方面:
- 创建索引和维护索引要耗费时间,这种时间随着数据量的增加而增加。
- 索引需要占物理空间,除了数据表占数据空间之外,每一个索引还要占一定的物理空间,如果要建立聚簇索引,那么需要的空间就会更大。
- 当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,这样就降低了数据的维护速度。
magento有三种刷新索引的方法:
第一种:在magento后台->system->Index Management
这里有整个网站的索引,选择所有Index,并重建索引数据Reindex Data就OK了,但是这种方法刷索引当数据量较大的时候容易刷新不成功。
第二种:用脚本刷新索引
Magento包含索引脚本,你可以找到
Shell
文件夹
在这个文件夹,你可以执行一些命令
检查所有索引的状态
php indexer.php --status
应该会输出类似下面:
Product Attributes: Pending
Product Prices: Pending
Stock Status: Pending
Tag Aggregation Data: Pending
Default Values: Pending
Catalog URL Rewrites: Pending
Product Flat Data: Require Reindex
Category Flat Data: Pending
Category Products: Pending
Catalog Search Index: Pending
重新索引单个索引
每个索引都有自己的索引键,当magento需要重新索引时就需要引用它,要获得这些键,你可以使用一下命令
php indexer.php --info
你将会得到:
catalog_product_attribute Product Attributes
catalog_product_price Product Prices
cataloginventory_stock Stock Status
tag_summary Tag Aggregation Data
mana_db_replicator Default Values
catalog_url Catalog URL Rewrites
catalog_product_flat Product Flat Data
catalog_category_flat Category Flat Data
catalog_category_product Category Products
catalogsearch_fulltext Catalog Search Index
重新索引单个索引,运行一下命令:
php indexer.php --reindex [Index Option Code]
- 1
可以用逗号来分离多个索引
php indexer.php --reindex catalog_product_price,catalog_url,catalog_product_flat
重新刷新所有索引
下面的代码将通过每个索引循环,来重新建立索引
php indexer.php --reindexall
第三种:在程序中用代码对相应的字段进行刷新索引,这里我拿我用过的刷新价格索引来举例:
Mage::getResourceModel('catalog/product_indexer_price')->reindexProductIds($productIds)
说白了和利用脚本刷新索引没什么区别,但是在程序中用代码进行针对性的刷新索引更方便,更省时并且实时性强。
大概的刷新索引方法就这么几种,喜欢那种看个人喜好!
--索引重建命令
https://devdocs.magento.com/guides/v2.0/config-guide/cli/config-cli-subcommands-index.html
Command options:
bin/magento indexer:reindex [indexer]
Where [indexer] is a space-separated list of indexers. Omit [indexer] to reindex all indexers.
View a list of indexers
To view a list of all indexers:
bin/magento indexer:info
The list displays as follows:
catalog_category_product Category Products
catalog_product_category Product Categories
catalog_product_price Product Price
catalog_product_attribute Product EAV
cataloginventory_stock Stock
catalogrule_rule Catalog Rule Product
catalogrule_product Catalog Product Rule
catalogsearch_fulltext Catalog Search
php -d="memory_limit=-1" bin/magento indexer:reindex catalogsearch_fulltext
[转]Magento刷新索引的几种方法的更多相关文章
- Javascript刷新页面的几种方法
Javascript刷新页面的几种方法: window.navigate(location)location.reload()location=locationlocation.assign(loca ...
- Javascript刷新页面的八种方法
/** * Javascript刷新页面的八种方法 * 说明一下,jQuery没有发现刷新页面的方法. */ 1 history.go(0) 2 location.reload() 3 locatio ...
- JS刷新页面的几种方法(转)
Javascript刷新页面的几种方法: 1 history.go(0) 2 location.reload() 3 location=location 4 location.assign(locat ...
- Javascript刷新页面的几种方法:
Javascript刷新页面的几种方法: 1 history.go(0) 2 window.location.reload() window.location.reload(true) ...
- Knockout获取数组元素索引的2种方法,在MVC中实现
原文:Knockout获取数组元素索引的2种方法,在MVC中实现 在遍历数组.集合的时候,通常要获取元素的索引,本篇体验使用Knockout获取索引的2种方法. 假设有这样的一个模型: namespa ...
- JS刷新当前页面的几种方法总结
reload 方法,该方法强迫浏览器刷新当前页面. 语法:location.reload([bForceGet]) 参数: bForceGet, 可选参数, 默认为 false,从客户端缓存里取当前页 ...
- pandas重置索引的几种方法探究
pandas重置索引的几种方法探究 reset_index() reindex() set_index() 函数名字看起来非常有趣吧! 不仅如此. 需要探究. http://nbviewer.jupy ...
- mysql 中添加索引的三种方法
原文:http://www.andyqian.com/2016/04/06/database/mysqleindex/ 在mysql中有多种索引,有普通索引,全文索引,唯一索引,多列索引,小伙伴们可以 ...
- 用easyui实现查询条件的后端传递并自动刷新表格的两种方法
用easyui实现查询条件的后端传递并自动刷新表格的两种方法 搜索框如下: 通过datagrid的load方法直接传递参数并自动刷新表格 通过ajax的post函数传递参数并通过loadData方法将 ...
随机推荐
- Linux Buffer/Cache 的区别
以前经常使用free -h命令来查看当前操作系统的内存使用情况,同时也注意过返回信息中有一列是buff/cache,来公司之前,面试官还问过我这两个的区别,当时没有回答出来,现在特意回顾记录下: ...
- 在我朝如何为Brackets安装扩展?
Brackets是Adobe发起的一个开源的HTML编辑器,界面优美简洁.扩展丰富.支持基于Chrome浏览器的实时预览,非常适合对于Web的开发和学习. 但是Brackets的安装包下载和扩展下载, ...
- 【javascript/PHP】当一个JavaScripter初次进入PHP的世界,他将看到这样的风景
本文将从以下11点介绍javascript和PHP在基础语法和基本操作上的异同: 1.数据类型的异同 2.常量和变量的定义的不同,字符串连接运算符不同 3.对象的创建方法的不同 4.PHP与JS在变 ...
- 【BZOJ2589】 Spoj 10707 Count on a tree II
BZOJ2589 Spoj 10707 Count on a tree II Solution 吐槽:这道题目简直...丧心病狂 如果没有强制在线不就是树上莫队入门题? 如果加了强制在线怎么做? 考虑 ...
- canvas制作完美适配分享海报
基于mpvue实现的1080*1900小程序海报 html <canvas class="canvas" :style="'width:'+windowWidt ...
- ThinkCMF后台验证码不显示,无法登陆怎么办?
ThinkCMF5在本地部署之后,过一段时间可能会莫名其妙的出现后台验证码不显示的问题,不明就里.着急登陆后台的话,可以先禁用后台验证码,方法如下: 打开文件:/app/admin/controlle ...
- Java Web(四) 一次性验证码的代码实现
其实实现代码的逻辑非常简单,真的超级超级简单. 1.在登录页面上login.jsp将验证码图片使用标签<img src="xxx">将绘制验证码图片的url给它 2.在 ...
- 用开源 ASP.NET MVC 程序 Bonobo Git Server 搭建 Git 服务器(转)
用开源 ASP.NET MVC 程序 Bonobo Git Server 搭建 Git 服务器 现在不用Git,都不好意思说自己是程序员. 当你想用Git,而源代码服务器是Windows系统时,你 ...
- POJ 2661
#include<iostream> #include<stdio.h> using namespace std; int main() { //freopen("a ...
- Shell 流程控制 if while for
if else if if 语句语法格式: if condition then command1 command2 ... commandN fi 写成一行(适用于终端命令提示符): if [ $(p ...