Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/233.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.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
Php MySQL在从多行中选择时性能较慢_Php_Mysql_Mysql Workbench - Fatal编程技术网

Php MySQL在从多行中选择时性能较慢

Php MySQL在从多行中选择时性能较慢,php,mysql,mysql-workbench,Php,Mysql,Mysql Workbench,我的表中有4000多行数据。我注意到,当我试图从mysql工作台获取所有行时,它变得非常慢,甚至冻结 经过一些尝试和错误后,我注意到,如果选择的行数超过1544行,则性能将冻结/降低 SELECT * FROM users LIMIT 1544; 编辑 以下是运行DESC Users Field, Type, Null, Key, Default, Extra 'id', 'int(10) unsigned','NO','PRI',

我的表中有4000多行数据。我注意到,当我试图从mysql工作台获取所有行时,它变得非常慢,甚至冻结

经过一些尝试和错误后,我注意到,如果选择的行数超过1544行,则性能将冻结/降低

SELECT *  FROM users LIMIT 1544;
编辑

以下是运行
DESC Users

Field,         Type,            Null,  Key,  Default, Extra
'id',          'int(10) unsigned','NO','PRI',NULL, 'auto_increment'
'email',       'varchar(255)',  'NO',  '',   NULL, ''
'password',    'varchar(255)',  'YES', '',   NULL, ''
'first_name',  'varchar(255)',  'YES', '',   NULL, ''
'last_name',   'varchar(255)',  'YES', '',   NULL, ''
'gender',      'varchar(15)',   'YES', '',   NULL, ''
'picture',     'varchar(255)',  'YES', '',   NULL, ''
'contact_number','varchar(255)','YES', '',   NULL, ''
'country',     'varchar(255)',  'YES', '',   NULL, ''
'state',       'varchar(255)',  'YES', '',   NULL, ''
'city',        'varchar(255)',  'YES', '',   NULL, ''
'dob',         'date',          'YES', '',   NULL, ''
'type',        'int(11)',       'NO',  '',   '1', ''
'verified',    'int(11)',       'NO',  '',   '0', ''
'is_first_login','int(11)',     'NO',  '',   '1', ''
'status',      'int(11)',       'NO',  '',   '1', ''
'remember_token','text',        'YES', '',   NULL, ''
'created_at',  'timestamp',     'NO',  '',   '0000-00-00 00:00:00', ''
'updated_at',  'timestamp',     'NO',  '',   '0000-00-00 00:00:00', ''

我怎样才能解决这个问题

建议:

  • 而不是*使用字段名
  • 如果您同时需要所有数据,则可以使用条件和限制
  • 如果您需要一些数据,那么您可以使用分页,加载其他数据,然后用户向下滚动
  • 您可以为其创建视图并调用该视图

  • 请为用于选择目的的列编制索引。同时,表结构数据类型长度将根据您的需要减少

    假设不需要varchar(255)作为Ex.contact_号码,varchar(10)就足够了


    这是优化表和快速检索表中数据的最佳方法。对于大型数据库,Mysql索引有助于解决速度问题,可以在表中创建索引以更快、更高效地查找数据。所以必须创建索引,你可以在这里了解更多关于MYsql索引的信息

    第一件事没有order by的限制是没有意义的,你可以在限制之前使用主键执行order by。你能告诉我们你的结构吗?如果没有这些,就很难找到问题。@AbhikChakraborty好吧,它是按id排序的。。。我必须明确订购吗?这能解决我的问题吗?你能运行
    explain SELECT*FROM foo.bar LIMIT 1544并显示输出?@tommyley这是一个错误的概念,mysql存储无序的数据,除非使用order by,否则无法保证获得有序的数据。是的,用户
    按id排序
    ,由于id是主键,它将使用索引对数据进行排序,这会更快。所以这种缓慢的性能是正常的吗?没有人一次选择这么多行数据?