php - 从多行中选择时 MySQL 性能缓慢

标签 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',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', ''

如何解决这个问题?

最佳答案

建议:

  1. 使用字段名称代替 *。
  2. 如果您一次需要所有数据,则可以使用条件并使用限制。
  3. 如果您需要一些数据,则可以使用分页,加载其他数据,然后用户向下滚动。
  4. 您可以为其创建 View 并调用该 View 。

关于php - 从多行中选择时 MySQL 性能缓慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34872906/

相关文章:

mysql 和 sql 开发人员

MySQL Workbench 6.1 - 导入记录集时出错

mysql - 无法连接到 '127.0.0.1' (10061) (2003) 上的 MySQL 服务器

php - 在 mysql 中存储 gzip 字符串

php - MySQL LIKE 查询不提取相似数据

mysql - 选择与同一表中的另一个字段对应的每个不同字段

php - MYSQLi Select 语句 - 不起作用

mysql - 无法在特定网络上使用 MysqlWorkbench 连接到数据库。 (在其他地方都可以正常工作)

javascript - Facebook 分享显示主服务器 IP 地址而不是域名

php - CakePhp 'contains' 与强制加入?