可以使用 TRUNCATE TABLE table_name 命令重置数据表,这个命令的实质是删除表,然后再重建表,对于有约束的表来说,是行不通的,必须先禁用外键约束再执行删除。
另一种方法是想删除表中的所有数据,然后再把表的id开始值设为1.
# 第一种方案 SELECT @@FOREIGN_KEY_CHECKS; # 查看单签外键约束命令 SET FOREIGN_KEY_CHECKS=0; # 首先禁用外键约束 TRUNCATE TABLE table_name; # 然后重置表 # 第二种方案,推荐 DELETE FROM table_name; # 不带where条件的删除命令删除所有数据 ALTER TABLE table_name AUTO_INCREMENT=1; # 重置递增初始值
MySQL占用内存过大
当服务器内存只有1G或者更小的时候,就需要更改MySQL的默认配置了,否则你会发现你的MySQL轻易就占用了400M甚至800M的内存。
通过优化MySQL的配置从而达到降低它占用内存的目的,配置文件一般在: vim /etc/my.cnf 中的[[mysqld]下面。详细的 MySQL 配置项可以参考官网:MySQL官网详细配置项。我单前的服务器为单核CPU,内存为1G。
# The maximum number of instrumented table objects.加载的最大表实例数,默认-1自适应 performance_schema_max_table_instances = 600 # The number of table definitions that can be stored in the definition cache,默认-1自适应 table_definition_cache = 400 # The number of open tables for all threads.所有线程能够打开的最大表数,默认为2000 table_open_cache = 128 # innodb引擎的缓存大小,如果启动失败,则调小 innodb_buffer_pool_size = 600M # 联合查询操作所能使用的缓冲区大小,线程独占 join_buffer_size = 8M
修改配置以后,重启mysql服务已使得配置项生效。
可以通过下面的方式查看当前mysql的配置信息:
# 登陆mysql mysql -hlocalhost -uroot -ppassword # 查看所有全局配置 show global variables; # 查看全局配置转态 show global status; # 筛选特定的配置项,下面是筛选出innodb开始的配置项 show global variables like 'innodb%';
MySQL临时表必须要有别名
对于查询生成的临时表,必须使用 as 定义别名,即使后面没有用到。否则会报错: Every derived table must have its own alias。
MySQL获取表的列名
假设表名为 table_name;可以使用以下三种命令查询该表的列名。
DESC table_name; DESCRIBE table_name; SHOW columns FROM persons;
更多相关Mysql内容来自木庄网络博客
标签:Mysql
相关阅读 >>
mysql 主从数据不一致,提示: slave_sql_running no 的解决方法
mysql中如何配置ssl_key和ssl-cert与ssl-ca的路径以及建立ssl连接的实例
更多相关阅读请进入《mysql》频道 >>

数据库系统概念 第6版
本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。