mysql 查询表重复值
SELECT mobile from `fa_user` GROUP BY mobile HAVING count(*) > 1;
查询User表手机号Mobile重复值的语句
SELECT mobile from `fa_user` GROUP BY mobile HAVING count(*) > 1;
查询User表手机号Mobile重复值的语句
面对日益增大的数据表容量,mysql查询性能也随之下降。这时候就需要寻找一套解决方案来应对将来的局面。根据网络的过往经验,现将一些基本规范进行总结归纳。方便日后所用。
尽量用单表查询,禁止多于3表的join查询
禁止使用select * from 语句,尽量只或许需要的字段。
避免冗余的排序
全模糊查询无法使用索引,应尽可能避免
使用in代替or
禁止隐式装换
禁止使用负项查询 如not in , not like ,!=这种
SELECT
TABLE_NAME,
DATA_LENGTH + INDEX_LENGTH,
TABLE_ROWS,
concat(round((DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024,2),'MB') AS DATA
FROM
information_schema. TABLES
WHERE
TABLE_SCHEMA = 'washbox' -- 数据库名
ORDER BY
DATA + 0 DESC;
最近在做一个数据库管理功能,用于计算数据库资源情况。方便维护。
根据字段查表名(用于检索全库带有该字段的表)
精确查询
SELECT * FROM information_schema.columns WHERE column_name='column_name'; //column_name为字段名
ALTER TABLE ecs_order_upfile add test VARCHAR(64) DEFAULT NULL COMMENT '测试'
故障检查:
服务器工具---事件查看器----Windows日志----应用程序----mysql,会在右侧看到一个红色的error
出现类似InnoDB: Attempted to open a previously opened tablespace.的报错
解决办法:
找到mysql数据的存放位置 如mysql/data,你会看到ib_logfile0 和ib_logfile1 这两个InnoDB表的日志文件,删除然后再重启服务,即可解决