sql常用语句
查询数据库表名
select table_name from information_schema.tables where table_schema='数据库名称'
1.添加PRIMARY KEY(主键索引)
mysql>ALTER TABLE `table_name` ADD PRIMARY KEY ( `column` )
2.添加UNIQUE(唯一索引)
mysql>ALTER TABLE `table_name` ADD UNIQUE (
`column`
)
3.添加INDEX(普通索引)
mysql>ALTER TABLE `table_name` ADD INDEX index_name ( `column` )
4.添加FULLTEXT(全文索引)
mysql>ALTER TABLE `table_name` ADD FULLTEXT ( `column`)
5.添加多列索引
mysql>ALTER TABLE `table_name` ADD INDEX index_name ( `column1`, `column2`, `column3` )
数据库备份:mysqldump -u root -p superzig-operatingtable > 存储路径
还原数据库:mysql -uroot -p 数据库名称 < sql语句
1.# 接触表和数据的管理 .frm 和idb
alter table tablename DISCARD tablespace;
2.关闭数据库 把idb复制到data中
3.开始数据库 关联frm和idb
alter table tablename IMPORT tablespace;
buffer pool
show variables like "innodb_buffer_pool_size": 默认128M(字节展示)
show variables like "innodb_buffer_pool_instances";默认是1 可以设置多个 如果每个实例分配的空间小于1GB 强制设置成1
show variables like "innodb_buffer_pool_chunk_size"; 默认是128M
数据页
show variables like "innodb_page_size"; 默认是16k
redolog
show variables like "innodb_log_buffer_size"; 默认是16k
show variables like "innodn_log_file_size"; 默认是48M
show variables like "innodb_log_files_in_group"; 默认是2
show variables like "innodb_flush_log_at_trx_commit"; 默认是1 事务提交的时候直接刷盘
lru 和预读
show variables like "innodb_read_ahead_threshold"; 56线性预读
show variables like "innodb_random_read_ahead"; 默认关闭 13
show variables like "innodb_old_block_pct"; 37lru 老年区的比例 3/8
show variables like "innodb_old_block_time"; 1000 1s
刷脏页
show variables like "innodb_io_capacity" 默认200
show status like "innodb_buffer_pool_pages_total" 8192
show status like "innodb_buffer_pool_pages_dirty";
show variables like "innodb_max_dirty_pages_pct"; 75
show variables like "innodb_flush_neighbors"; on
show variables like "innodb_lru_scan_depth"; 1024
.idb存储
show variables like "innodb_file_per_table";
双写缓冲区
show variables like "innodb_doublewrite";
change buffer
show variables like "innodb_change_buffer_max_size"; 25