Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
获取最快的MySql查询_Mysql_Sql_Performance - Fatal编程技术网

获取最快的MySql查询

获取最快的MySql查询,mysql,sql,performance,Mysql,Sql,Performance,我正在用Mysql数据库开发一个CodeIgniter应用程序,它将包含大量数据 我的问题如下 按id DESC从产品订单中选择标识、代码、名称、类别、采购价格、零售价格、有效期、颜色、子类别 在这方面,我如何进行最快的选择查询 如何度量查询执行时间 为了使查询绝对快速,将您选择的列限制为绝对必要的列,如id、价格、颜色等。大型数据集应始终在服务器端分页。客户端分页在现实世界中几乎毫无用处。在执行查询运行之前: SET profiling = 1; 查询完成后 SHOW PROFILES;

我正在用Mysql数据库开发一个CodeIgniter应用程序,它将包含大量数据

我的问题如下

按id DESC从产品订单中选择标识、代码、名称、类别、采购价格、零售价格、有效期、颜色、子类别

在这方面,我如何进行最快的
选择
查询


如何度量查询执行时间

为了使查询绝对快速,将您选择的列限制为绝对必要的列,如id、价格、颜色等。大型数据集应始终在服务器端分页。客户端分页在现实世界中几乎毫无用处。在执行查询运行之前:

SET profiling = 1;
查询完成后

SHOW PROFILES;

为了使查询绝对最快,将您选择的列限制为绝对必要的列,如id、价格、颜色等。大型数据集应始终在服务器端分页。客户端分页在现实世界中几乎毫无用处。在执行查询运行之前:

SET profiling = 1;
查询完成后

SHOW PROFILES;
对于此查询:

SELECT id, code, name, category, purchase_price, retail_price, expiry_date, color_code, sub_category
FROM products
ORDER BY id DESC;
从优化的角度来看,除了按
优化
订单之外,几乎没有什么可以做的。最好的索引是:

CREATE INDEX idx_products_id_desc ON products(id desc);
对于此查询:

SELECT id, code, name, category, purchase_price, retail_price, expiry_date, color_code, sub_category
FROM products
ORDER BY id DESC;
从优化的角度来看,除了按
优化
订单之外,几乎没有什么可以做的。最好的索引是:

CREATE INDEX idx_products_id_desc ON products(id desc);

如果
id
是表中的主键,那么这个查询应该已经相当快了。限制为10个结果。谢谢@TomShaw,但我使用DataTable jQuery插件来显示数据。谢谢。如果
id
还不存在,请在其上创建索引。这将至少优化排序。用于从磁盘加载所有数据。。好吧,在查询中你无能为力。优化硬件。无需使用
WHERE
进行筛选
id
主键吗?它是最佳的,因为它的立场。但是,如果您正在分页,那么可以做很多事情。但是要这么说。如果
id
是表中的主键,那么这个查询应该已经相当快了。限制为10个结果。谢谢@TomShaw,但我使用DataTable jQuery插件来显示数据。谢谢。如果
id
还不存在,请在其上创建索引。这将至少优化排序。用于从磁盘加载所有数据。。好吧,在查询中你无能为力。优化硬件。无需使用
WHERE
进行筛选
id
主键吗?它是最佳的,因为它的立场。但是,如果您正在分页,那么可以做很多事情。但是你可以这么说。