相关疑难解决方法(0)

MySQL什么时候尝试更新列的索引?

我正在尝试确定MySQL更新索引的情况.说我有下表:

CREATE TABLE MyTable (
  ID INT NOT NULL AUTO_INCREMENT,
  MyIndexedColumn VARCHAR NOT NULL,
  MyNonIndexedColumn VARCHAR,
  PRIMARY KEY (ID),
  INDEX MyNewIndex(MyIndexedColumn)
)
Run Code Online (Sandbox Code Playgroud)

然后我运行以下SQL来插入一行:

INSERT INTO MyTable (MyIndexedColumn, MyNonIndexedColumn) 
VALUES ('MyTestValue', 'MyTestValue');
Run Code Online (Sandbox Code Playgroud)

据我所知,这个查询会在MySQL中为B-Tree索引添加某种哈希键,用于值'MyTestValue'.

现在,如果我运行以下语句,即使我没有更改列的值,是否会强制更新B-Tree索引?

UPDATE MyTable SET MyIndexedColumn = 'MyTestValue', 
MyNonIndexedColumn = 'A New Value' WHERE ID = 1;
Run Code Online (Sandbox Code Playgroud)

MySQL足够聪明,可以确定吗?或者只是将该列作为更新语句的一部分,我告诉MySQL可能已经发生了变化,它应该做更新索引的工作吗?

mysql database

5
推荐指数
3
解决办法
7949
查看次数

删除后不会立即更新表的Mysql大小

我有一个数据库,其中包含多个应用程序的Logentries.现在我写了一个bash-Script,它应该删除超出大小限制的最早的一天.我有一个循环,每天删除一天,直到实际大小小于限制.但是在删除语句之后,表的大小没有正确更新.

我使用了这个Sql语句

'SELECT round(((data_length + index_length)), 0) "Size in Bytes" FROM information_schema.TABLES WHERE table_schema = "Log" AND table_name = "Log";'
Run Code Online (Sandbox Code Playgroud)

确定实际的表大小.如何在删除命令后强制MySql立即重新调整此大小?

mysql sql

4
推荐指数
2
解决办法
3561
查看次数

标签 统计

mysql ×2

database ×1

sql ×1